Có thể tự động hóa việc nhập xếp hạng sao và số lần phát cho bài hát giống hệt / trùng lặp trong iTunes không?


2

Tôi đang trong quá trình thay thế các tệp MP3 <192 kpbs chất lượng thấp của mình thành các tệp MP3 hoặc ALAC 320 kpbs trong iTunes.

Ngay bây giờ, thói quen của tôi là nhập các tệp HQ mới vào iTunes, chuyển sang chế độ "Hiển thị các mục trùng lặp", sắp xếp theo Tên bài hát, thay thế thủ công xếp hạng sao và sử dụng Applescripts của Doug để thêm Đếm Play mới vào các bài hát mới.

Bất cứ ai có một cách tốt hơn và nhanh hơn để làm điều này? Tôi có một thư viện lớn và nó thực sự cồng kềnh khi thay thế xếp hạng và số lần phát cho cùng một bài hát nhưng chất lượng cao hơn. Tôi đã tìm kiếm trang của Doug nhưng không thể tìm thấy bất cứ điều gì giống như những gì tôi đang mô tả.

Cảm ơn

Câu trả lời:


3

Đây là kịch bản nhỏ của tôi để làm những gì bạn đang yêu cầu. Đã thử nghiệm trên một vài bản nhạc trên iTunes 11 của tôi dưới Snow Leopard và nó chạy rất tốt.

tell application "iTunes"

    set myMusicLib to some playlist whose special kind is Music
    log "Debug: Count of library items: " & (count of tracks of myMusicLib)

    set myNewTracks to (get tracks in myMusicLib whose bit rate is greater than 256)
    log "Debug: Count hi bit rate tracks: " & (count of myNewTracks)

    repeat with newTrack in myNewTracks

        -- Try to match it with a low bit rate track
        set trackName to name of newTrack
        set albumName to album of newTrack

        --log "Debug: Hi Rate Track Name: " & (get name of newTrack)
        --log "Debug: Rate: " & (get bit rate of newTrack)

        set oldTracks to {}
        try
            set oldTracks to (get tracks in myMusicLib ¬
                whose bit rate is less than 256 ¬
                and name is trackName ¬
                and album is albumName)
        end try

        if (count of oldTracks) is 1 then
            log "Debug: Dup Name: " & trackName
            log "Debug: BitRate: " & (get bit rate of item 1 of oldTracks)

            set oldPlayCount to (get played count of item 1 of oldTracks)
            set played count of newTrack to oldPlayCount
            log "Debug: Reset Play Count to: " & oldPlayCount

            set oldRating to (get rating of item 1 of oldTracks)
            set rating of newTrack to oldRating
            log "Debug: Reset rating to: " & oldRating
        end if
        if (count of oldTracks) is greater than 1 then
            log "ERROR: Found more than 1 duplicate. Not doing anything."
        end if
    end repeat
end tell

BIÊN TẬP:

Bạn có thể có được cái nhìn thoáng qua về những gì đang diễn ra bằng cách nhìn vào đầu ra mà nó đặt vào khung Sự kiện. Chỉ cần chạy nó trong Trình chỉnh sửa Applescript và nhấp vào nút Sự kiện & Trả lời để làm nổi bật chúng.

Đầu ra của kịch bản


EDIT2:

Để giới hạn tập lệnh, bạn có thể thay đổi dòng

set myNewTracks to (get tracks in myMusicLib whose bit rate is greater than 256)

đến

set myNewTracks to (get tracks in myMusicLib whose bit rate is greater than 256 and Album is "My Album Name")


Ôi trời, cảm ơn bạn rất nhiều vì đã làm điều này cho tôi! Tôi có nên làm theo hướng dẫn như thế này không: maclife.com/article/columns/ cấp để chạy tập lệnh của bạn? (Tôi chưa có kinh nghiệm về kịch bản, cảm ơn)
vermilions

Không có gì. Bạn có thể làm theo hướng dẫn ở đó và nó sẽ chạy tốt nhưng không có gì sẽ được hiển thị. Nếu bạn chạy từ bên trong Trình chỉnh sửa Applescript, bạn sẽ thấy một số thông tin như được hiển thị trong phần chỉnh sửa cho câu trả lời của tôi ở trên.
Vic

Xin chào lần nữa, tôi chỉ có thể áp dụng kịch bản này cho một lựa chọn các bài hát trong thư viện của mình chứ? Tôi sợ nếu tôi nhấn chạy, nó có thể làm điều gì đó khác và phá hủy thư viện của tôi. Cảm ơn
vermilions

Chắc chắn, tôi hiểu. Tôi đã chỉnh sửa câu trả lời của mình để hiển thị dòng nào sẽ thay đổi để giới hạn các thay đổi trong một album.
Vic
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.