ID3 başlık etiketini MP3 dosya adına eşit olacak şekilde ayarlama


14

Herkes bir medya kitaplığından geçecek ve her MP3 dosyasının id3 başlık etiketini dosyanın adına eşit olacak şekilde ayarlayacak bir bash betiği var mı?

Diğer otomatik yöntemlere de açığım. Bir GUI uygulaması veya işi otomatik olarak yapacak bir şey olabilir.

Bir EasyTag yöntemi burada belirtilmiştir: mp3 ID3 dosyalarında toplu başlık etiketi nasıl yeniden adlandırılır - Ne yazık ki, adımları anlamıyorum.


Kendi sorunuza cevap verebilirsiniz. ubuntuforums.orgBulduğunuz adımları listeleyin ve kaynağınızdan alıntı yapın. :) Bu, ubuntuforums.orgbağlantının kullanılamaması durumunda gelecekteki Superuser ziyaretçilerine yardımcı olacaktır .
iglvzx

3
İşte birkaç ipucu: 1) Sorunuzu "düzenle 1", "düzenle 2" vb. İle karıştırmayın. Yorumları kullanarak sorunları çözün. 2) Bir çözüm bulursanız, bir başkasının sorusunu cevaplamaya çalışıyormuş gibi cevap olarak gönderin. Cevabı soruya sokmayın . İnsanların aradığı yer bu değil :) Ayrıca, başka bir yerden teklif ettiğiniz herhangi bir şey için blockquotes kullanın (biçimlendirme yardımına bakın).
Mart'ta slhck

MP3 dosyalarını "Artist - Track.mp3" biçiminde doğru bir şekilde etiketlemek ve daha sonra dosyayı "Track.mp3" olarak yeniden adlandırmak için bir komut dosyası hazırladım: gist.github.com/ZachSaucier/f51e608ac75e8ed6e96cd54a9ec103b0 kullanarakeyed3
Zach Saucier

Yanıtlar:


17

EasyTAG bu sorun için gerçekten harika bir araçtır. Cevabımı burada buldum . Nasıl kullanılacağı açısından, en iyi referans EasyTAG'ın kendi belgeleri olduğu ortaya çıkıyor .

EasyTag'i açın, içinde müzik dosyaları bulunan bir klasöre gidin, klasördeki tüm dosyaları veya etiketlemek istediğiniz tüm dosyaları seçin, "Dosyaları Tara" düğmesini tıklayın (anlamak için üzerlerine gelmeniz gerekir) hangisi olduğunu).

Ardından, tarayıcı açılır listesinin "Dolgu Etiketi" olarak ayarlandığından emin olun, ardından Dolgu Etiketi alanında, alanın altındaki örnek aradığınıza benzeyene kadar uygun düzenlemeleri yapın. Dolgu Etiketi alanına ne yazacağınız konusunda daha fazla yardıma ihtiyacınız olursa "?" açıklama için (farklı kodların ne ile tercüme edileceğini listeleme) düğmesine basın ve bazı başlangıç ​​noktalarını listelemek için maske düğmesine basın.

Sonuçlardan memnun olduğunuzda, "Dosyaları Tara" düğmesini tıklayın (bulunduğunuz yere ulaşmak için ilk tıkladığınız dosyaları değil, Dosyaları Tara iletişim kutusunda) ve simgeler aynı görünür ve değişiklikleriniz uygulanır . Sanatçı veya Albüm adı almıyorsanız, değiştirmek istediğiniz her şeyi seçin, verileri girin ve o alanın yanındaki küçük düğmeyi tıklayın; seçilen tüm dosyalar o sanatçı veya albümle doldurulur veya değiştirilir. Bu çoğu alanda çalışır.

İşiniz bittiğinde, kaydet düğmesini tıkladığınızda işiniz bitti.

Not: Etiketlemeye çalıştığınız tam albümleriniz veya en azından piyasada satılan şarkı dosyaları varsa, CDDB tarayıcı genellikle oldukça iyi çalışır.

PPS: Görünüşe göre hala yarı uyanıkım. Orijinal yayınınıza yazdıklarınıza göre, Doldurma Etiketi alanında bunu deneyin:

%n. %a - %t

İşte bu soru ile ilgili bölüm:


1.2.2. "Dolgu Etiketi" tarayıcı ile otomatik olarak:

Bu modu kullanmak için bazı koşullar:

  • albümlere göre sıralanan dosyalar
  • dosya adları veya üst dizinde etiket bilgileri (sanatçı, albüm, başlık vb.)
  • boş veya doğru olmayan etiketler

“Dolgu Etiketi” tarayıcısı, dosya adındaki ve dizinlerdeki sözcükleri etiket girişleriyle ilişkilendirmek için bir desen kullanır. Bu şekilde, etiket alanları tarayıcı penceresindeki veya araç çubuğundaki “yeşil” düğmeye basılarak otomatik olarak tamamlanabilir. Etiket kısmen tamamlandıysa, tüm alanları yeni değerlerle değiştirmek için “Tercihler” penceresinin “Tarayıcı” sekmesindeki “Etiketi tararken alanların üzerine yaz” seçeneğini kullanın.

Her kod, aşağıdaki kurallara uyarak bir alana karşılık gelir:

Strings associated with code    Will fill the field
%a
  Artist
%b
  Album
%c
  Comment
%p
  Composer
%r
  Copyright
%e
  Encoded by
%g
  Genre
%i
  None! (used to ignore a string)
%l
  Number of tracks
%o
  Original artist
%n
  Track
%t
  Title
%u
  URL
%y
  Year

Not: hatalardan kaçınmak için, kalıpta yalnızca bir kez bir kod kullanılması önerilir. Elbette, manuel olarak etiketlerken olduğu gibi, yalnızca seçilen dosyalar tarayıcı tarafından işlenir. Listedeki tanımlı kalıpları kullanabilir veya dosya adlarınızın ve dizinlerinizin biçimine karşılık gelecek şekilde kendi kalıplarınızı yazabilirsiniz. Doğru deseni seçerken veya yazarken hatalardan kaçınmak için, bir önizleme deseni uygulamadan hemen önce sonuçları gösterir. Farklı kodlarla ilgili yardıma ihtiyacınız olursa, her bir kodun göstergesini görüntülemek için “Yardım” düğmesine (lifebuoy) basın. Ayrıca, kendi desenlerinizi kaydetmek, düzenlemek veya sıralamak isterseniz, “Maske” düğmesine basarak tarayıcı penceresinde küçük bir editör gösterilecektir.

Desen kullanımının bir örneği aşağıdadır:

a) aşağıdaki dosya adı:

“/mnt/MP3/EVANESCENCE  Fallen (2003)  Rock/01. Going Under.mp3

b) with the pattern :

“%a - %b (%y) - %g/%n. %t

c) you will fill the tag with theses strings :

    Artist (%a) => EVANESCENCE
    Album (%b) => Fallen
    Year (%y) => 2003
    Genre (%g) => Rock
    Track (%n) => 01
    Title (%t) => Going Under


3

Ben yararlı olmak için çeşitli komut satırı araçları buldum:

id3v2

id3v2, komut satırı id3v2 etiket düzenleyicisidir. İd3v2 etiketlerini ekleyebilir / değiştirebilir / silebilir ve id3v1 etiketlerini id3v2 etiketlerine dönüştürebilirsiniz. İd3lib kullanır. Ortak bakıcı arıyorum. İlgileniyorsanız lütfen myers_carpenter adresine e-posta gönderin.

eyeD3

eyeD3, bir Python modülü ve ID3 etiketlerini işlemek için kullanılan bir programdır. Mp3 dosyaları hakkında bilgi (bit hızı, örnek frekansı, çalma süresi, vb.) Da sağlanır. Desteklenen formatlar ID3 v1.0 / v1.1 ve v2.3 / v2.4'tür.

bunlar dizinleri taramak için bir şeyler yazarken idealdir.


2

Bu her zaman tam olarak mükemmel değildir, ancak sadece yaygın unix araçlarını (meşgul kutusu sürümleri dahil) kullanarak mp3 dosyalarının adlarını almak için kullandım.

for x in *.mp3; do
  TITLE=$(strings "$x" |grep TAG |grep -v TAGL |sed "s/^.*TAG//g ; /^L$/d ; /^@$/d ; /^$/d ; /^Ac$/d")
  #mv "$x" "$TITLE.mp3"
  echo $x" "$TITLE.mp3" #just echo for now, until further tested
done

Düzenleme: Soruyu yanlış okudum, ama yukarıda bunu bilerek yerine yerine dizeyi değiştirmek için sed kullanarak $ TITLE "$ x" dosya adıyla değiştirmek için sed kullanabilirsiniz

sed -i "s/$TITLE/$x/" "$x"

Bunun neredeyse tüm ID3 spesifikasyonlarını karşılamadığından neredeyse% 100 eminim, ancak önce bir yedekleme yaptığınız sürece temel kişisel kullanım için yeterli olabilir


Teşekkürler. EasyTAG kullanarak hedefime ulaşmanın bir yolunu buldum, ancak cevabınız asıl sorumu en iyi şekilde cevaplıyor. dizeleri bilmek iyi bir yardımcı programdır. (Daha önce kullanmadım.) Önerilen değişikliği anladığımdan emin olabilmem için düzenlemenize dayalı eksiksiz bir çözüm gönderebilir misiniz?
MountainX

2

Ubuntu 18.04 LTS için (tüm Debian lezzetlerinin bu kadar iyi çalışacağını varsayıyorum):

  • EyeD3'ü sudo apt install eyeD3

  • Bash script için bir dosya oluşturun ("touch" ı kullandım; istediğiniz metin düzenleyiciyi kullanabilirsiniz)

  • Bunu kopyalayın ve dosyaya yapıştırın:

    Dosya adını kopyalar ve Başlık etiketine yazar

    for x in *; do
        eyeD3 --title="${x%.*}" "$x"
        echo $a
    done

    İlerlemeyi görüntülemek istemezseniz, echo $a "tamamlandı" kelimesinin üzerindeki satırı atlayın .

  • Dosyayı yürütülebilir yapın:

    chmod +x filename
  • Komut dosyasını, çalışmasını istediğiniz dizine, medya dosyalarınızı içeren dizine kopyalayın; Örneğin:

    cp filename /music/directory
  • Komut dosyasını az önce kopyaladığınız dizine gidin:

    cd /music/directory
  • Komut dosyasını çalıştırın:

    ./filename

    YAPILAN

Ubuntu 18.04 LTS'de benim için çalıştı - karım bunu 3 dakika içinde benim için yazdı, bu yüzden sizin için işe yaramazsa herhangi bir soruyu cevaplayamıyorum; Ben programcı anlayışlı değilim, ben bu web kurulum, dns, ssh, sftp, ftp, AD / Domain, dosya, güvenlik duvarı, yönlendirici / sunucu tür adam :-) Ben komut dosyası, programlama ve benzeri bir şey yapmaktan nefret ediyorum. Ben komut dosyası, programlama ve bunun gibi bir şey yararlanmak AŞK :-)


1

Kimse ffmpegveya kullanarak en kolay çözümü önermedi şaşırdım avconv:

for i in *.mp3; do avconv -y -i "$i" -c copy -metadata title="$i" new_"$i"; done;

0

EyeD3'ü bir python virtualenv'e yüklerim, pip install eyeD3böylece en son yayınlanan sürümü alırsınız. Bu çalışmadan sonra:

for i in *.mp3; do /your/venv/bin/eyeD3 --title "$i" "$i"; done
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.