มีเครื่องมือบรรทัดคำสั่ง ID3 ที่ดีสำหรับ OS X หรือไม่


45

ใครรู้ว่าเครื่องมือบรรทัดคำสั่ง* ID3 พร้อมรองรับID3v2คุณสามารถทำงานบน Mac OS X ด้วยความพยายามอย่างสมเหตุสมผลหรือไม่ ควรสนับสนุนทั้งการอ่านและการเขียนแท็ก

( *ฉันต้องการที่จะสามารถเรียกมันได้เช่นจากสคริปต์ Python บางตัวดังนั้นเครื่องมือ GUI จะไม่ทำ)

id3toolยูทิลิตี้เป็นสิ่งที่ดีเป็นอย่างอื่น แต่ไม่สนับสนุน ID3v2 (และไม่เล่นที่ดีกับ iTunes) ฉันต้องรวบรวมจากแหล่งที่มา แต่มันค่อนข้างตรงไปตรงมาบน Mac ที่มี Xcode & เครื่องมือสำหรับนักพัฒนา (รวมถึงโดยเฉพาะอย่างยิ่งคอมไพเลอร์ C) อย่างไรก็ตามฉันชอบสิ่งที่มีตัวเลือกบรรทัดคำสั่งที่คล้ายกันเป็น id3tool นี่คือตัวอย่างของการติดแท็กหนึ่งไฟล์:

id3tool -t "Song Title" -r Artist -a "Album Name" -c 2 track-02.mp3

ฉันทำงานเกี่ยวกับการเขียนแบบนี้ ... มีห้องสมุดบางแห่งที่มีอยู่ในไพ ธ อนและมีเครื่องมือที่เรียกว่าหัวบีทที่ใช้งานมันดังนั้นฉันจึงตรวจสอบวิธีการเขียนของมัน
Robert S Ciaccio

2
นอกจากนี้ ... MusicBrainz Picard เขียนด้วย Python และเป็นโอเพ่นซอร์สดังนั้นจึงมีหลายสิ่งที่จะต้องรวบรวมจากการใช้งานโค้ดและไลบรารีเช่นกัน
Robert S Ciaccio

ฉันเห็นด้วย Picard ยอดเยี่ยมมาก
Rohan Monga

คำตอบ:


48

หากคุณติดตั้งHomebrew (แนะนำเป็นอย่างยิ่ง) คุณสามารถทำได้:

brew install id3lib

นี้จะติดตั้งเครื่องมือ ID3 บรรทัดคำสั่งหลายแห่งรวมถึงid3tag, id3convert, และid3cp id3infoไม่จำเป็นต้องมีสคริปต์ python หรือ perl เพียงใช้คำสั่งเชลล์ปกติ

Usage: id3tag [OPTIONS]... [FILES]...
   -h         --help            Print help and exit
   -V         --version         Print version and exit
   -1         --v1tag           Render only the id3v1 tag (default=off)
   -2         --v2tag           Render only the id3v2 tag (default=off)
   -aSTRING   --artist=STRING   Set the artist information
   -ASTRING   --album=STRING    Set the album title information
   -sSTRING   --song=STRING     Set the title information
   -cSTRING   --comment=STRING  Set the comment information
   -CSTRING   --desc=STRING     Set the comment description
   -ySTRING   --year=STRING     Set the year
   -tSTRING   --track=STRING    Set the track number
   -TSTRING   --total=STRING    Set the total number of tracks
   -gSHORT    --genre=SHORT     Set the genre
   -w         --warning         Turn on warnings (for debugging) (default=off)
   -n         --notice          Turn on notices (for debugging) (default=off)

รองรับ ID3v2 หรือไม่
Jonik

id3lib ยังทำงานในการแจกแจงอื่น ๆ เช่น macports มีประเด็นอะไรบ้างในการเปลี่ยนจากพอร์ตเป็นโฮมบรูว์? ฉันมีอาการปวดเปลี่ยนไปมากจากตำรวจ ...
HiQ CJ

"ข้อผิดพลาด: ไม่มีสูตรสำหรับ mid3v2" มีคนสนใจบริจาคสูตรหรือไม่?
ManuelSchneid3r

3
@Jonik id3lib สามารถเขียนและจัดการทั้ง ID3v1 และ ID3v2 ได้
jchook

1
นอกจากนี้ยังมาพร้อมกับid3v2คำสั่ง "do-everything" มันจะช่วยให้คุณเขียนแท็กใดก็ได้ไปยังไฟล์
Edward Falk

14

มีรุ่น OS X ที่รองรับการเป็นห้องสมุด id3libใช้ได้นี่บน GitHub มันอ้างว่าให้การสนับสนุนทั้ง ID3v1 และ ID3v2


1
ขอบคุณ! นี่ตอบคำถามของฉันอย่างเต็มที่ มีเพียงแพคเกจมาใช้ได้ก็ แต่ติดตั้งจากนั้น (บน Mac ด้วยเครื่องมือสำหรับนักพัฒนา) คือสวยเรียบ: ค่าโดยสาร Unix มาตรฐานconfigure, และmake make installid3lib ประกอบด้วย 4 ไบนารีแยกกัน: id3info (สำหรับการอ่านแท็ก), id3tag (สำหรับการเขียนแท็ก), id3convert และ id3cp ทุกอย่างทำงานได้ดี (และ iTunes ให้เกียรติแท็ก v2 ที่เขียนด้วย id3tag)
Jonik

@Jonik คุณใช้ห่อห้องสมุดอะไร หลามที่คุณเขียน?
Robert S Ciaccio

@calavera: ใช่ฉันมีสคริปต์ง่าย ๆ ที่พยายามกำหนดหมายเลขแทร็กหรือชื่อจากชื่อไฟล์ (เช่น "Artist - 03 - Track.mp3") และหากพบให้เขียนไปที่แท็ก ID3 ด้วย
Jonik

@ จอน: คุณยินดีที่จะแบ่งปันหรือไม่ ฉันไม่ได้มีประสบการณ์มากมายกับงูเหลือมดังนั้นมันจะเป็นเรื่องที่ยอดเยี่ยมที่จะได้เล่นกับมันและขยาย ...
Robert S Ciaccio

@calavera: ไปเลย การใช้งาน: หรือadd-track-names.py *mp3 add-track-numbers.py *mp3สิ่งทั่วไป (รหัสส่วนใหญ่) อยู่ในไฟล์. py แยกต่างหาก ฉันไม่ได้เป็น coder ของ Python ดังนั้นรหัสอาจอยู่ไกลจาก "pythonic" :) แต่ฉันได้เรียนรู้มากมายเมื่อฉันเขียนมันและมันอาจจะขยายได้ง่ายถ้าความต้องการติดแท็กของคุณนั้นเป็นของฉัน
Jonik

5

โมดูลหลามMutagenมาพร้อมกับเครื่องมือ ID3 บรรทัดคำสั่งชื่อmid3v2แทนสำหรับ id3lib
จากเอกสารการใช้งาน:

คุณสามารถตั้งค่าสำหรับเฟรม ID3v2 ใด ๆ โดยใช้ '-' แล้วตามด้วย ID เฟรม
ตัวอย่างเช่น:
mid3v2 --TIT3 "Monkey!" file.mp3 จะตั้งค่ากรอบ "คำบรรยาย / คำอธิบาย" เป็น "Monkey!"


mutagen สามารถติดตั้งsudo pip install mutagenหลังจากติดตั้ง pip sudo easy_install pipกับ
Lri

คุณสามารถเรียกใช้โดยตรงได้sudo easy_install mutagenเช่นกัน
user1259710

4

คุณอาจต้องการที่จะลองID3v2 มันอิงจาก id3lib ที่ Huyz พูดถึง แต่ดูเหมือนว่าจะเป็นเครื่องมือบรรทัดคำสั่งที่ดีกว่าที่ใช้ id3lib มันทิ้งแท็ก ID3V2 จาก iTunes ที่ผลิต MP3 ได้อย่างง่ายดาย แต่ไม่ใช่ iTunes ที่สร้างไฟล์ M4A (เช่นเดียวกับ Apple Lossless)

หากคุณต้องการไฟล์ M4A, ตัวเลือกอื่นffmpeg เครื่องมือบรรทัดคำสั่ง ffprobe พิมพ์ข้อมูลเมตาในไฟล์และฉันเชื่อว่าคุณสามารถเขียนข้อมูลเมตาผ่าน ffmpeg ใช้งานได้กับไฟล์ MP3 และ M4A ที่ผลิตโดย iTunes ffprobe อาจไม่แสดงข้อมูลเมตาทั้งหมด mp4v2เป็นอีกตัวเลือกที่ดี

โปรแกรมทั้งสามนั้นติดตั้งได้อย่างง่ายดายผ่าน Homebrew ตอนนี้ (มกราคม 2012) ffmpeg ต้อง GCC brew install --use-gcc ffmpegจะรวบรวมเพื่อ


ขอบคุณที่แนะนำ mp4v2 สำหรับ m4a! ใช้งานได้อย่างมีเสน่ห์ในขณะที่ id3v2 ไม่ได้ :(
Ilias Karim

mp4v2 เป็นแท็กเดียวที่แก้ไขในลักษณะที่เข้ากันได้กับ iTunes (macOS 10.13, iTunes 12.7)
void-pointer

2

กระทู้เก่าที่ Mac OS X Hintsดูเหมือนว่ามันอาจเป็นจุดเริ่มต้นที่ดีสำหรับคุณ มันมาจากปี 2003 ดังนั้นฉันไม่แน่ใจว่าเครื่องมือที่พวกเขากำลังพูดถึงนั้นยังคงได้รับการพัฒนาอยู่หรือไม่ คุณอาจต้องรวบรวมด้วยตัวคุณเอง


2

มี AppleScript อยู่เสมอ ฉันไม่ใช่แฟนตัวยงของมัน แต่ iTunes เป็นสคริปต์และคุณสามารถจัดการแท็ก mp3 ทั้งหมดได้จากที่นั่น คุณสามารถเรียกใช้ Applescript จากบรรทัดคำสั่งโดยใช้ osascript


2

ไซต์นี้: http://dougscripts.com/itunes/ มีสคริปต์บรรทัดคำสั่งและเครื่องมือที่ดีมากมายที่อยู่ด้านบนของ iTunes เพื่อทำสิ่งต่างๆกับคลังเพลงของคุณ บางคนอาจทำสิ่งที่คุณต้องการ เครื่องมือบางอย่างนั้นฟรีและบางตัวก็มีใบอนุญาต


2

เนื่องจากคุณพอใจกับ cli และ Python ฉันสามารถแนะนำโมดูล Perl บางตัวใน CPAN MP3 :: แท็ก (เช่นเดียวกับ MP3 :: แท็ก :: ID3v1 และ :: ID3v2 และ :: Utils), MP3 :: ข้อมูล, MP3 :: ID3Lib มีให้อ่านและจัดการแท็ก ID3 ทั้งหมด

หากคุณไปที่ search.cpan.org และค้นหา "MP3" คุณจะพบตัวเลือกมากมาย!

(* โดยที่ "โลก" เป็นตัวเลือกชุดเล็ก จำกัด ... )


1
CLI และ Python ใช่ แต่โมดูล Perl ใน CPAN ... ไม่มาก :-) (ถ้าคุณสามารถใช้ใน Python ได้ฉันก็ไม่ทราบเช่นนั้นหรือคุณหมายถึงการเขียน Perl แทน) โดยส่วนตัวแล้วฉันได้รับสิ่งนี้ แก้ไขแล้ว แต่อาจเป็นประโยชน์สำหรับผู้อื่น
Jonik

2

มีปัญหาเกี่ยวกับประเภท ' แทร็บแทร็ก ' ต่าง ๆ กับ id3v2 ฉันค้นพบeyeD3ซึ่งเป็นโมดูลหลามที่มีอยู่เป็นเครื่องมือบรรทัดคำสั่ง ดูเหมือนว่าจะอัปเดตล่าสุดมากกว่าบางโปรแกรมที่กล่าวถึงข้างต้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.