Mengoreksi nomor metadata dan judul album di iTunes

0

Saya punya banyak CD yang ditandai dan kemudian diimpor ke iTunes dalam format berikut:

  • Cream Classics (disc 1)
  • Cream Classics (disc 2)
  • Cream Classics (disc 3)

Yang ingin saya lakukan adalah mengatur nomor disk masing-masing album (karena iTunes memiliki meta-data untuk ini) dan kemudian mengganti nama album menjadi "Cream Classics".

Mengingat jumlah album yang saya miliki, ini adalah proses manual yang sangat melelahkan.

Sementara saya dapat mengetuk sesuatu dalam vbscript untuk melakukannya secara otomatis, saya berharap ini adalah masalah yang cukup umum bagi seseorang untuk menyelesaikan masalahnya.

Ada saran?

Richard
sumber
Tanpa halaman penuh dengan sesuatu seperti Musicbrainz Picard dan retagging seluruh perpustakaan Anda sekali dan untuk semua, opsi terbaik (paling akurat) kemungkinan akan melakukannya sendiri secara manual.
Michael Frank

Jawaban:

0

Ternyata menulis vbscript untuk memperbaikinya sama sekali tidak sulit.

Buat file teks baru dengan nama fixdisc.vbsdan masukkan yang berikut ke dalamnya:

Option Explicit
Dim oiTunes : Set oiTunes = CreateObject("iTunes.Application")
Dim oLibrary : Set oLibrary = oiTunes.LibraryPlaylist
Dim oTracks : Set oTracks = oLibrary.Tracks
Dim i, oSong, p, sDisk, sNewTitle, iTotal
iTotal = oTracks.Count
For i = 1 To iTotal
    Set oSong = oTracks.Item(i) 
    For p = 1 To 4
        sDisk = " (disc " & p & ")"
        If Instr(1, oSong.Album, sDisk, vbTextCompare) > 0 Then
            sNewTitle = Replace(oSong.Album, sDisk, "", 1, -1, vbTextCompare)
            WScript.Echo i & "/" & iTotal & ": Setting '" & oSong.Album & "' to '" & sNewTitle & "' and disk number to " & p
            ' Remove the ' prefix on the next two lines to actually update the data!
            ' oSong.DiscNumber = p
            ' oSong.Album = sNewTitle
            Exit For
        End If
    Next
Next
Set oSong = Nothing
Set oTracks = Nothing
Set oLibrary = Nothing
Set oiTunes = Nothing

Memunculkan prompt perintah (menggunakan cmd), navigasikan ke lokasi skrip dan ketik:

cscript fixdisc.vbs

Script akan memberi tahu Anda album apa yang akan diubah tetapi tidak akan melakukan perubahan . Saat Anda senang, edit skrip dan hapus 'dari dua baris sehingga kode terlihat seperti ini:

            ' Remove the ' prefix on the next two lines to actually update the data!
            oSong.DiscNumber = p
            oSong.Album = sNewTitle
            Exit For
        End If

Sekarang jalankan kembali skrip dan trek yang berisi (disc x)(di mana x adalah 1 hingga 4) akan memiliki meta-data "Nomor Cakram" yang sesuai dan judul album akan diperbarui untuk menghapus string itu.

Peringatan / peringatan

  • Jika Anda mengklik dua kali dari Windows, maka Anda akan mendapatkan spam dengan pop-up. Jadi selalu jalankan dari baris perintah.
  • Saya belum sepenuhnya mengujinya, gunakan dengan risiko Anda sendiri! (backup perpustakaan Anda terlebih dahulu)
  • Hanya "disc x" yang berfungsi, Anda dapat dengan mudah mengubah itu untuk mendukung "disk x" jika Anda mau.
  • Hanya disk nomor 1 hingga 4 yang akan berfungsi, Anda dapat dengan mudah mengubah itu untuk berbuat lebih banyak.
  • Nomor disk yang kompleks (mis. "Eksposur Utara (disk 1: 0 derajat, utara)") tidak akan dikoreksi.
  • Butuh waktu yang cukup lama untuk dilakukan dan perpustakaan iTunes Anda akan melompat-lompat tidak menentu saat data dikoreksi. PC Anda juga sedikit macet.

Nikmati.

Richard
sumber
Perlu dicatat bahwa skrip ini bukan cara terbaik untuk melakukan ini. Siapa pun yang ingin menulis ulang ini harus mempertimbangkan memaksa skrip untuk dijalankan sebagai cscript, memeriksa keberadaan (dispertama dalam string dan kemudian menggunakan ekspresi reguler (seperti \(dis[ck] (\d+).*?\)untuk mengekstrak nomor disk. Ini akan menghasilkan tidak perlu menggunakan perintah garis, pemrosesan lebih cepat, dukungan untuk varian "disk / disk", dukungan untuk nomor disk apa pun, dan dukungan untuk nomor disk yang kompleks. Jadi pada dasarnya, sebagian besar peringatan!
Richard