GoGPT Best VPN GoSearch

ไอคอน Fav ของ OnWorks

mp3info2p - ออนไลน์ในคลาวด์

เรียกใช้ mp3info2p ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง mp3info2p ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


mp3info2 - รับ/ตั้งค่าแท็ก MP3; ใช้ MP3::Tag เพื่อรับค่าเริ่มต้น

เรื่องย่อ


# พิมพ์ข้อมูลในแท็กและข้อมูลอัตโนมัติ
mp3info2 *.mp3

# นอกจากนี้ ตั้งค่าฟิลด์ปีเป็น 1981
mp3info2 -y 1981 *.mp3

# เหมือนเดิมโดยไม่ต้องพิมพ์ข้อมูลซ้ำในไดเร็กทอรีปัจจุบัน
mp3info2 -R -p "" -y 1981 .

#ห้ามอนุมานช่องใดๆ ให้พิมพ์ข้อมูล(นอร์มัลไลซ์)จากแท็กเท่านั้น
mp3info2 -C autoinfo=ID3v2,ID3v1 *.mp3

# ตามที่กล่าวไว้ข้างต้น แต่ไม่มีการทำให้เป็นมาตรฐาน/ป้อนอัตโนมัติ ข้อมูลดิบในแท็ก
mp3info2 -N *.mp3

#เหมือนข้างบนแต่มีเฉพาะแท็ก ID2v1 read
mp3info2 -NC ข้อมูลอัตโนมัติ=ID3v1 *.mp3

# รับศิลปินจาก CDDB_File แปลงข้อมูลอื่น ๆ โดยอัตโนมัติ เขียนลงในแท็ก
mp3info2 -C ศิลปิน=CDDB_File -u *.mp3

# สำหรับชื่อเรื่อง ต้องการข้อมูลจากไฟล์ .inf พักผ่อนอัตโนมัติ อัปเดต
mp3info2 -C title=Inf,ID3v2,ID3v1,ชื่อไฟล์ -u *.mp3

# เหมือนกันและรับศิลปินจากไฟล์ CDDB
mp3info2 -C title=Inf,ID3v2,ID3v1,ชื่อไฟล์ -C ศิลปิน=CDDB_File -u *.mp3

# เขียนสคริปต์สำหรับการแปลง .wav เป็น .mp3 แท็กอัตโนมัติ
mp3info2 -p "อ่อนแอ -h --vbr-new --tt '%t' --tn %n --ta '%a' --tc '%c' --tl '%l' --ty '% y' '%f'\n" *.wav >xxx.sh

DESCRIPTION


โปรแกรมพิมพ์ข้อความสรุปข้อมูลแท็ก (ได้รับผ่านโมดูล MP3::Tag) สำหรับ
ไฟล์ที่ระบุ

นอกจากนี้ยังอาจอัปเดตข้อมูลในแท็ก ID3 สิ่งนี้เกิดขึ้นในสามกรณีที่แตกต่างกัน

· หากข้อมูลที่ให้ในตัวเลือกบรรทัดคำสั่ง "talygcn" แตกต่างจาก
เนื้อหาของแท็ก ID3 ที่เกี่ยวข้อง (หรือไม่มีแท็ก ID3 ที่สอดคล้องกัน)

· หากมีตัวเลือก "-d" หรือ "-F"

· หาก "MP3::Tag" ได้รับข้อมูลจากวิธีอื่นที่ไม่ใช่แท็ก MP3 และ "-u" บังคับให้
อัปเดตแท็ก ID3

(วิธีการทั้งหมดเหล่านี้ปิดใช้งานโดยตัวเลือก "-D")
มีตัวเลือกให้ (กรอกช่องที่คำนวณได้โดยอัตโนมัติ (โดยวิธี
id3v2_frames_เติมอัตโนมัติ()) จะดำเนินการเว้นแต่จะมีตัวเลือก "-d" หรือ "-N")

ตัวเลือก "-u" เขียน ("u"pdates) ข้อมูลที่ดึงมาไปยังแท็ก MP3 ID3 นี้
จะถือว่าตัวเลือกนั้นมีตัวเลือกบรรทัดคำสั่งซึ่งกำหนดองค์ประกอบแท็กอย่างชัดเจน
("-a", "-t" เป็นต้น และ "-F", "-d") (ผลของตัวเลือกนี้อาจถูกแทนที่ด้วยการให้
ตัวเลือก "-D") หากมีตัวเลือก "-2" ให้บังคับเขียนแท็ก ID3v2 แม้ว่าข้อมูล
พอดีกับแท็ก ID3v1 (นอกจากนี้ ตัวเลือกนี้จะเปิดใช้งานการอัปเดตอัตโนมัติของ "ชื่อส่วนบุคคล"
ช่องและชื่อเรื่องที่เกี่ยวข้องตามค่าของ "translate_person"
"person_frames" เป็นต้น การตั้งค่าคอนฟิก; ดู "การปรับช่องให้เป็นมาตรฐาน") ตัวเลือกนี้
จะถูกละเว้นหากตรวจไม่พบการเปลี่ยนแปลงแท็ก อย่างไรก็ตาม เราสามารถบังคับการอัปเดตได้โดยการทำซ้ำ
ตัวเลือกนี้ (มีประโยชน์หากคุณคาดว่าจะเปลี่ยน "รูปแบบ" ของแท็ก แทนที่จะเป็น
"เนื้อหา").

ตัวเลือก "-p" พิมพ์ข้อความโดยใช้อาร์กิวเมนต์ถัดไปเป็นรูปแบบ (โดยค่าเริ่มต้น "\\", "\t",
"\n" ถูกแทนที่ด้วยแบ็กสแลช แท็บ และขึ้นบรรทัดใหม่ ควบคุมโดยค่าของตัวเลือก "-E");
ดู "สอดแทรก" ใน MP3::Tag สำหรับรายละเอียดของรูปแบบของ วิ่ง()-ชอบหนี ถ้าไม่
ให้ตัวเลือก "-p" ข้อความในรูปแบบเริ่มต้นจะถูกปล่อยออกมา ค่าของตัวเลือก "-e"
คือการเข้ารหัสที่ใช้สำหรับเอาต์พุต ถ้าค่าเป็นตัวเลข การเข้ารหัสเฉพาะระบบคือ
เดา (และใช้สำหรับเอาต์พุตหากตั้งค่าบิต 0x1); หากตั้งค่าบิต 0x2 แล้วบรรทัดคำสั่ง
ตัวเลือกจะถือว่าอยู่ในการเข้ารหัสที่คาดเดา หากตั้งค่าบิต 0x4 แล้วบรรทัดคำสั่ง
อาร์กิวเมนต์จะถือว่าอยู่ในการเข้ารหัสที่คาดเดา ใช้ค่า "ไบนารี" เพื่อทำไบนารี
เอาท์พุต

ด้วยตัวเลือก "-D" (dry run) จะไม่มีการอัปเดต ไม่ว่าตัวเลือกอื่นๆ จะเป็นอย่างไร
ด้วยตัวเลือกนี้ จะไม่มีการแยกวิเคราะห์แท็กเว้นแต่จำเป็น

ใช้ตัวเลือก

talygcn

เพื่อเขียนทับข้อมูล (ชื่อศิลปิน อัลบั้ม ปี ประเภท ความคิดเห็น หมายเลขแทร็ก) ที่ได้รับ
ผ่านการวิเคราะห์พฤติกรรม "MP3::Tag" (สวิตช์ "-u" จะบ่งบอกโดยนัยหากอาร์กิวเมนต์ข้อใดข้อหนึ่งแตกต่างกัน
จากสิ่งที่จะพบเป็นอย่างอื่น ใช้สวิตช์ "-D" เพื่อปิดใช้งานการอัปเดตอัตโนมัติ) โดยค่าเริ่มต้น,
ค่าของตัวเลือกเหล่านี้ไม่ใช่ "%"-interpolated; อาจเปลี่ยนแปลงได้โดยตัวเลือก "-E"

ตัวเลือก "-d" ควรมีรายการเฟรม ID3v2 ที่คั่นด้วยเครื่องหมายจุลภาคที่จะลบ NS
ข้อมูลจำเพาะของเฟรมจะเหมือนกับที่อาจมีให้กับ "%{...}" การแก้ไขเฟรม
คำสั่ง เช่น "TIT3", "COMM03", "COMM(fra)[short title]"; ความแตกต่างกับการปรับเปลี่ยน-
การเข้าถึงคือว่า ทั้งหมด (และไม่ใช่ เป็นครั้งแรก ของ) เฟรมที่ตรงกันจะถูกลบออก (ตัวเลือก -d อาจเป็น
ซ้ำแล้วซ้ำเล่า)

ตัวอย่างเช่น "-d APIC" จะลบกรอบรูปทั้งหมด นอกจากนี้ หากรายการประกอบด้วย
"ID3v1" ​​หรือ "ID3v2" แท็กทั้งหมดจะถูกลบออก

ในทำนองเดียวกัน ตัวเลือก "-F" ช่วยให้สามารถตั้งค่าเฟรม "ID3v2" ได้ตามอำเภอใจ: หากต้องการตั้งค่า
หนึ่งเฟรม ใช้คำสั่ง "FRAME_spec=VALUE":

-F TIT2=The_new_Title

อีกครั้งในการปรับเปลี่ยน ทั้งหมด เฟรมที่ตรงกันจะถูกลบออกก่อนดังนั้นโปรดระวังด้วย

-F COMM=ความคิดเห็นของฉัน

ตัวเลือก "-F" อาจทำซ้ำเพื่อตั้งค่ามากกว่าหนึ่งเฟรม ถ้าตัวแปรการกำหนดค่า
"empty-F-deletes" เป็น TRUE (ค่าเริ่มต้น) อาร์กิวเมนต์ว่างจะลบเฟรม

สามารถแทนที่ "FRAME_spec=VALUE" ด้วย "FRAME_spec < FILE"; ในกรณีนี้ค่าที่จะตั้ง
ถูกอ่านจากไฟล์ชื่อ ไฟล์; ถ้าเฟรมเป็นแบบข้อความเท่านั้น (ความหมาย: มากที่สุด
"[เข้ารหัส] ฟิลด์คำอธิบายภาษาของ URL ข้อความมีอยู่) ไฟล์ถูกอ่านเป็นข้อความ
โหมด (และด้วยการเว้นช่องว่างเริ่มต้น/ต่อท้าย) มิฉะนั้นจะถูกอ่านในรูปแบบไบนารี
โหมด. (จำเป็นต้องมีช่องว่างเกี่ยวกับเครื่องหมาย "<) หาก "<" ถูกแทนที่ด้วย "?<" เครื่องหมาย
ค่าจะถูกตั้งค่าเฉพาะในกรณีที่ยังไม่มีเฟรม และถ้าไฟล์นั้นมีอยู่ ถ้าแทนที่ด้วย ">"
ค่า (ถ้ามี) เขียนถึง ไฟล์ (การสร้างไดเร็กทอรีระดับกลางคือ
ควบคุมโดยตัวเลือกการกำหนดค่า "frames_write_creates_dirs" ค่าเริ่มต้นคือ FALSE)

นอกจากนี้ "FRAME_spec" อาจเป็นหนึ่งใน "ID3v1" ​​หรือ "ID3v2" หรือ "TAGS" ในกรณีนี้ทั้งหมด
แท็กถูกเขียนหรืออ่าน ตัวอย่างเช่น สำหรับ "TAGS < FILE", "ชื่อศิลปิน อัลบั้ม ปี ประเภท
ติดตามความคิดเห็น" ข้อมูลคำนวณจาก ไฟล์ซึ่งอาจเป็นแท็กดิบตามที่สร้างด้วย ">"
หรือไฟล์ MP3 ที่ถูกต้อง ถ้า Image::ExifTool มีอยู่ ข้อมูลอาจถูกอ่านโดยพลการ
ไฟล์มัลติมีเดีย (เช่นเดียวกัน สำหรับ "ID3v1 < FILE" ข้อมูลเดียวกันจะถูกดึงมาจาก "ID3v1"
เท่านั้น) หลังจากนี้ ในกรณีของ "ID3v2" หรือ "TAGS" เฟรม "ID3v2" จะถูกคัดลอกจาก
แท็ก "ID3v2" ทีละรายการ (มีการปรับเปลี่ยนที่เหมาะสมสำหรับ "?<")

โดยค่าเริ่มต้น "VALUE" สำหรับ "-F" คือ "%"-interpolated; สามารถเปลี่ยนแปลงได้โดยตัวเลือก "-E"
เพื่อความสะดวกของผู้ใช้ รูปแบบที่เป็นมิตรกับมนุษย์ "ผู้แต่ง, text_by, วงออเคสตรา, วาทยกร,
disk_n" สามารถใช้แทน "TCOM, TEXT, TPE2, TPE3, TPOS"

ตัวเลือก "-P RECIPE" เป็นลักษณะทั่วไปที่ทรงพลังมากของสิ่งที่ตัวเลือกสามารถทำได้
"-F", "-d" และ "-t -a -l -y -g -c -n" มันอาจจะซ้ำ; ค่าควรมี
สูตรแยกวิเคราะห์ พวกเขากลายเป็นรายการการกำหนดค่า "parse_data" ของ "MP3::Tag"; ในท้ายที่สุด
ข้อมูลนี้ประมวลผลโดยโมดูล MP3::Tag::ParseData (หากมีอยู่ใน
ห่วงโซ่ของฮิวริสติก; ดูตัวเลือก "-C") "RECIPE" แบ่งออกเป็น "$flags, $string,
@patterns" บนอักขระที่ไม่ใช่ตัวอักษรและตัวเลขคละกันตัวแรกของ @patterns ที่ตรงกัน
$string จะถูกดำเนินการ (สำหรับผลข้างเคียง) (ดูตัวอย่าง: "ตัวอย่าง: parse
กฎ".)

หากระบุตัวเลือก "-G" ชื่อไฟล์ในบรรทัดคำสั่งจะถือเป็น glob
รูปแบบ ซึ่งอาจเป็นประโยชน์หากความยาวบรรทัดคำสั่งสูงสุดต่ำเกินไป กับ
อาร์กิวเมนต์ตัวเลือก "-R" สามารถเป็นไดเร็กทอรีซึ่งถูกค้นหาซ้ำ ๆ สำหรับเสียง
(ค่าเริ่มต้น * .mp3) ไฟล์ที่จะประมวลผล ใช้ตัวเลือก "-r" เพื่อรีเซ็ตนิพจน์ทั่วไปเป็น look
สำหรับ (ค่าเริ่มต้นคือ "(?i:\.mp3$)")

ตัวเลือก "-E" ควบคุมการขยายอักขระหลีก ควรมีตัวอักษรของ
ตัวเลือกบรรทัดคำสั่งที่ "\\, \n, \t" ถูกสอดแทรก สามารถต่อท้ายตัวอักษร
ของตัวเลือก "talygcn F" ที่ต้องการ "%"-interpolation หลังตัวคั่น "/i:" (สำหรับ
"-F" เฉพาะค่าที่มีการประมาณค่า) ค่าเริ่มต้นคือ "p/i:Fp": เฉพาะ "-p" คือ
"\"-ถูกสอดแทรก และมีเพียง "-F" และ "-p" เท่านั้นที่อยู่ภายใต้การแก้ไข "%" ถ้าทั้งหมดหนึ่ง
ต้องการคือการ เพิ่ม เป็นค่าเริ่มต้น นำหน้าค่า "-E" (มีตัวเลือกเพิ่มเติม) โดย
"+" (บางส่วนของค่าของตัวเลือก "-P" มีการสอดแทรก แต่ควรเป็น
ถูกควบคุมโดยแฟล็ก ไม่ใช่ "-E"; ทำ ไม่ ใส่ "P" ลงในส่วน "%"-interpolated ของ "-E")

หากระบุตัวเลือก "-@" อักขระ "@" ทั้งหมดในตัวเลือกจะถูกแทนที่ด้วย "%" นี้
อาจสะดวกหากเชลล์ปฏิบัติต่อ "%" เป็นพิเศษ (เช่น เชลล์ DOSISH)

หากมีตัวเลือก "-I" ไม่มีการคาดเดาสำหรับ ศิลปิน ฟิลด์จะดำเนินการเมื่อพิมพ์

ตัวเลือก "-C CONFIG_OPT=VALUE1,VALUE2..." ตั้งค่าข้อมูลการกำหนดค่า "MP3::Tag" เหมือนกัน
วิธีเป็น "MP3::Tag-"กำหนดค่า ()> จะทำ (จำได้ว่าค่าเป็นอาร์เรย์; แยกองค์ประกอบ
ด้วยเครื่องหมายจุลภาคถ้ามีมากกว่าหนึ่ง) อาจใช้ตัวเลือกซ้ำเพื่อตั้งค่ามากกว่าหนึ่งค่า บันทึก
เนื่องจาก "ParseData" ใช้ในการประมวลผลสูตรการแยกวิเคราะห์ "-P" จึงควรเก็บไว้ดีกว่า
ในการกำหนดค่า "autoinfo" (และฟิลด์ที่เกี่ยวข้อง "ผู้เขียน" ฯลฯ ) ต่อหน้า "-P"

หากมีตัวเลือก "-x" ข้อมูลทางเทคนิคเกี่ยวกับไฟล์เสียงจะถูกพิมพ์
(ระดับ MP3, ระยะเวลา, จำนวนเฟรม, ช่องว่างภายใน, ลิขสิทธิ์ และรายการของเฟรม ID3v2
ชื่อในรูปแบบที่เหมาะสมกับ "%{...}" หลีก) ถ้า "-x" ซ้ำ เนื้อหาของเฟรมคือ
พิมพ์ออกมาด้วย (อาจพิมพ์ตัวอักษรที่ไม่สามารถพิมพ์ได้หากทำซ้ำมากกว่าสองครั้ง)

หากมีตัวเลือก "-N" ไว้ "สมาร์ท" ทั้งหมดจะถูกปิดใช้งาน - ไม่มีการทำให้ฟิลด์เป็นมาตรฐาน
เกิดขึ้นและ (โดยค่าเริ่มต้น) ไม่พยายามอนุมานค่าของฟิลด์จาก non-ID3
ข้อมูลเสร็จแล้ว ตัวเลือกนี้ (ปัจจุบัน) เทียบเท่ากับการมี "-C
autoinfo=ParseData,ID3v2,ID3v1" ​​เป็นคำสั่งแรกที่ไม่มี
ทำให้เป็นมาตรฐาน::ข้อความ::Music_Fields.pm นำเสนอบนเส้นทาง @INC และไม่เรียก ป้อนอัตโนมัติ () วิธี

normalization of ทุ่ง


(การโหลดโมดูลการทำให้เป็นมาตรฐานและการดำเนินการที่ตามมาทั้งหมดอาจถูกปิดใช้งานโดย
ตัวเลือก "-N" หรือโดยการตั้งค่าตัวแปรสภาพแวดล้อม "MP3TAG_NORMALIZE_FIELDS" ให้เป็น FALSE
ถ้าไม่ได้ห้าม โมดูลจะพยายามโหลดถ้าไดเร็กทอรี ~/.music_fields is
ปัจจุบัน หรือ "MP3TAG_NORMALIZE_FIELDS" ถูกตั้งค่าและเป็น TRUE)

หากการโหลดโมดูล "Normalize::Text::Music_Fields" สำเร็จ จะเป็นดังนี้
บังคับ:

หากมีการกำหนดค่าของ "MP3TAG_NORMALIZE_FIELDS" และไม่ใช่ 1 ค่านี้จะถูกแบ่งออกเป็น
ไดเร็กทอรีเป็น PATH และเส้นทางการโหลดของ "Normalize::Text::Music_Fields" ถูกตั้งค่าเป็นสิ่งนี้
รายการไดเรกทอรี จากนั้น MP3::Tag จะได้รับคำสั่ง (ผ่านการกำหนดค่าที่เกี่ยวข้อง
การตั้งค่า) เพื่อใช้วิธี "normalize_artist" (ฯลฯ ) ที่กำหนดโดยโมดูลนี้ วิธีการเหล่านี้
อาจทำให้ข้อมูลแท็กบางอย่างเป็นปกติ เวอร์ชันปัจจุบันกำหนดวิธีการสำหรับ "การทำให้เป็นมาตรฐาน"
ของชื่อบุคคลและชื่อเรื่อง (ตามผู้แต่ง) การทำให้เป็นมาตรฐานนี้ถูกขับเคลื่อน
ผ่านตารางการกำหนดค่าที่ผู้ใช้แก้ไขได้

นอกเหนือจากการทำให้ข้อมูลแท็ก MP3 เป็นมาตรฐานโดยอัตโนมัติแล้ว เราสามารถใช้ "ไฟล์ MP3 ปลอม" ได้
เข้าถึงคุณลักษณะบางอย่างของโมดูลนี้ด้วยตนเอง สำหรับสิ่งนี้ ให้ใช้ชื่อไฟล์ว่างและ "-D"
ตัวเลือก. เช่น,

mp3info2 -D -a เบโธเฟน -p "%a\n" ""
mp3info2 -D -a เบโธเฟน -p "%{shP[%a]}\n" ""
mp3info2 -D -a เบโธเฟน -t "sonata #28" -p "%t\n" ""
mp3info2 -D -a beethoven -t "อัลเลเกรตโต เบส" -@p "@t\n" ""
mp3info2 -D -a เบโธเฟน -t "op93" -@p "@t\n" ""

จะพิมพ์ชื่อบุคคลที่ทำให้เป็นมาตรฐานสำหรับ "เบโธเฟน" ซึ่งเป็นชื่อย่อมาตรฐานที่สอดคล้องกัน
ชื่อบุคคล และชื่อปกติสำหรับ "โซนาตา #28" ของนักแต่งเพลง "เบโธเฟน" เช่น,
ด้วยตารางการทำให้เป็นมาตรฐานที่จัดส่ง มันจะพิมพ์

ลุดวิก ฟาน เบโธเฟน (1770-1827)
แอล. ฟาน เบโธเฟน
Piano Sonata No. 28 ในวิชาเอก; อ. 101 (1816)
Allegretto สำหรับ Piano Trio ใน B flat major; วู 39 (1812)
ซิมโฟนีหมายเลข 8 ใน F major; อ. 93 (comp. 1812, fp Vienna, 1814-02-27, cond. Beethoven; pubd. 1816)

การขอ ใบสั่ง of การดำเนินการ


ปัจจุบันดำเนินการตามลำดับต่อไปนี้

· การลบ ID3v1 หรือ ID3v2 โดยรวมผ่านตัวเลือก "-d"

· มีการตั้งค่า Recipies ของตัวเลือก "-P" (จะถูกทริกเกอร์โดยการแก้ไข)

· การตั้งค่าทำได้ผ่านตัวเลือก "-a/-t/-l/-y/-g/-c/-n";

· การตั้งค่าทำผ่านตัวเลือก "-F";

· การลบแต่ละเฟรมโดยใช้ตัวเลือก "-d";

· ป้อนอัตโนมัติของเฟรม ID3v2 (id);

· ส่งข้อมูลตามตัวเลือก "-p" และ "-x"

· ทริกเกอร์ผู้รับของ "-P" (ถ้าไม่ถูกทริกเกอร์โดยการแก้ไข)

· อัปเดตแท็กหากจำเป็น

การใช้ กลยุทธ์: การเพิ่ม of ความซับซ้อน


จุดประสงค์ของสคริปต์นี้คือเพื่อให้การจัดการแท็ก ID3 เป็นเรื่องง่าย as เป็นไปได้.

ที่ปลายด้านหนึ่งของมาตราส่วน เราสามารถดำเนินการจัดการที่ซับซ้อนตามอำเภอใจด้วยแท็กโดยใช้
โมดูล "MP3::Tag" Perl

ในอีกด้านหนึ่ง จะสะดวกกว่ามากในการจัดการกับแท็กที่ง่ายที่สุด
โดยใช้ตัวเลือกของสคริปต์นี้ "-t -a -l -y -g -c -n" และ "-p -F -d" เพิ่มเติมเล็กน้อย
งานที่ซับซ้อนอาจต้องใช้วิธีการที่ซับซ้อนมากขึ้นของ วิเคราะห์คำ กฎระเบียบ, ให้
ไปยังสคริปต์นี้โดยใช้ตัวเลือก "-P"; กฎเกณฑ์ขึ้นอยู่กับ การแก้ไขโปรดดูที่
"สอดแทรก" ใน MP3::Tag, "interpolate_with_flags" ใน MP3::Tag.

เพื่อทำให้การอัพเกรดง่ายขึ้นจาก "การจัดการที่ง่ายที่สุด" เป็น "สิ่งที่ซับซ้อนยิ่งขึ้น" ที่นี่เรา
ให้ "กฎการแยกวิเคราะห์" คำพ้องความหมาย สู่ตัวเลือกที่ง่ายที่สุด ดังนั้นหากคุณเริ่มต้นด้วย "-t -a -l -y
-g -c -n" และ "-p -F -d" ตัวเลือกที่ "เกือบจะได้ผล" สำหรับคุณ คุณมีโอกาสที่จะเป็น
สามารถบรรลุเป้าหมายของคุณได้อย่างเต็มที่โดยการแก้ไขคำพ้องความหมายที่อธิบายไว้ด้านล่าง

(ด้านล่างเราคิดว่าตัวเลือก "-E" ถูกกำหนดเป็นค่าเริ่มต้น ดังนั้น "-F -p" คือ
"%" - สอดแทรก ไม่มีตัวเลือกอื่น โปรดทราบว่าหากการเข้ารหัส TTY ของคุณคือ
Perl รู้จักขอแนะนำให้ตั้งค่าตัวเลือก "-e 3" บนเชลล์ DOSISH
ใช้ "-@" ดีกว่า และแทนที่ "%" ด้วย "@" ด้านล่าง)

"-t ค่า"
-P "mz/VALUE/%t"

"-a -l -y -g -c -n"
ในทำนองเดียวกัน

"-F" "TIT2=ค่า"
-P "mzi/VALUE/%{TIT2}"

"-F" "APIC[myDescr] < ไฟล์"
-F "APIC[myDescr]=%{I(fimbB)FILE}"

or

-P "mzi/%{I(fimbB)FILE}/%{APIC[myDescr]}"

(ลบ "bB" สำหรับเฟรมแบบข้อความเท่านั้น)

"-F" "APIC[myDescr] > ไฟล์"
-P "bOi,%{APIC[myDescr]},FILE"

(ลบ "b" สำหรับเฟรมแบบข้อความเท่านั้น); หรือใช้ "-e binary -p "%{APIC[myDescr]}""
ด้วยการเปลี่ยนเส้นทาง โปรดดู "ตัวอย่าง: แยกวิเคราะห์กฎ"

"-d" TIT2
-P "ม.//%{TIT2}"

"-F" "TIT2 ?< ไฟล์"
หากินมาก สิ่งนี้จะไม่ตั้งค่าให้แยกไฟล์เปล่าและไฟล์ที่ไม่มีอยู่:

-P "mzi/%{TIT2:1}0%{I(fFim)FILE}/10/10%{TIT2}/0%{U1}"

(เพิ่ม "bB" เป็น "fFim" สำหรับเฟรมที่ไม่ใช่ข้อความเท่านั้น); ส่วนสุดท้ายอาจถูกละเว้น
หากละเว้นแฟล็ก "m" - มีให้จับเฉพาะการพิมพ์ผิดเท่านั้น

สำหรับรายละเอียดเกี่ยวกับ "กฎการแยกวิเคราะห์" โปรดดูที่ "ตัวอย่าง: กฎการแยกวิเคราะห์" และ "คำอธิบาย" ใน
MP3::Tag::ParseData.mpXNUMX::แท็ก::ParseData.

ตัวอย่าง: วิเคราะห์คำ กฎระเบียบ


เฉพาะตัวเลือก "-P" เท่านั้นที่ซับซ้อนพอที่จะสมควรได้รับความคิดเห็น... สำหรับรายละเอียดทั้งหมดเกี่ยวกับ
วิเคราะห์คำ กฎระเบียบดู "คำอธิบาย" ใน MP3::Tag::ParseData; สำหรับรายละเอียดทั้งหมดเกี่ยวกับการแก้ไข
ดู "interpolate" ใน MP3::Tag, "interpolate_with_flags" ใน MP3::Tag

สำหรับตัวอย่าง (โง่) เราสามารถแทนที่ "-a Homer -t Iliad" ด้วย

-P mz=โฮเมอร์=%a -P mz=อีเลียด=%t

ตัวอย่างที่งี่เง่าน้อยกว่าคือการบังคับให้ใช้วิธีแยกวิเคราะห์ชื่อไฟล์ผ่าน

-P "im=%{d0}/%f=%a/%n %t.%e"

มันถูกแบ่งออกเป็น

รูปแบบสตริงธง1
"ฉัน" "%{d0}/%f" "%a/%n %t.%e"

ธงอักษรย่อมาจาก ตีความ, ต้อง_match. สิ่งนี้สอดแทรกสตริง
"%{d0}/%f" และแยกวิเคราะห์ผลลัพธ์ (ซึ่งเป็นชื่อไฟล์ที่มีไดเร็กทอรีหนึ่งระดับ
สงวนไว้บางส่วน) โดยใช้รูปแบบที่กำหนด; ดังนั้นชื่อไดเรกทอรีจึงกลายเป็นศิลปิน the
ส่วนตัวเลขนำหน้า - หมายเลขแทร็ก และชื่อไฟล์ที่เหลือ (ไม่มีนามสกุล)
- ชื่อเรื่อง โปรดทราบว่าเนื่องจากอนุญาตให้ใช้หลายรูปแบบ เราจึงสามารถอนุญาตสำหรับ . ได้เช่นเดียวกัน
หลายรูปแบบของชื่อเช่น

-P "im=%{d0}/%f=%a/%n %t.%e=%a/%t (%y).%e"

อนุญาตให้ชื่อไฟล์อยู่ในรูปแบบ "TITLE (YEAR)" ด้วย อีกทางเลือกหนึ่งในการ
ได้ผลลัพธ์ที่เหมือนกันคือ

-P "im=%{d0}=%a" -P "im=%f=%n %t.%e=%t (%y).%e"

ซึ่งสอดคล้องกับสองสูตร:

ธงรูปแบบสตริง1รูปแบบ2
"ฉัน" "%{d0}" "%a"
"ฉัน" "%f" "%n %t.%e" "%t (%y).%e"

แน่นอนว่าใครๆ ก็ใช้

"ฉัน" "%B" "%n %t" "%t (%y)"

แทนอันที่สอง

โปรดทราบว่าการตั้งค่าอาจอ่านง่ายขึ้น ศิลปิน เป็น "%{d0}" โดยการกำหนดที่ชัดเจนด้วย
ข้อโต้แย้งที่คล้ายกับ

-E "p/i:Fpa" -a "%{d0}"

(ค่าของ "-E" นี้ร้องขอ "%"-interpolation ของตัวเลือก "-a" นอกเหนือจาก
ค่าเริ่มต้น "\"-การแก้ไขของ "-p" และ "%"-การแก้ไขของ "-F" และ "-p"; หนึ่งกระป๋อง
ทางลัดด้วย "-E +/i:a")

เพื่อยกตัวอย่างเพิ่มเติม

-P "if=%D/.comment=%c"

จะอ่านความคิดเห็นจากไฟล์ .ความคิดเห็น ในไดเรกทอรีของไฟล์เสียง

-P "ifn=%D/.comment=%c"

มีผลคล้ายกันหากไฟล์ .ความคิดเห็น มีความคิดเห็นหนึ่งบรรทัด หนึ่งรายการต่อแทร็ก (ถือว่า
สามารถค้นหาหมายเลขแทร็กได้ด้วยวิธีอื่น)

สมมติว่าไฟล์ อะไหล่ ในไดเร็กทอรีของไฟล์ MP3 มีรูปแบบดังนี้: มี a
คำนำ แล้วมีย่อหน้าสั้นๆ ของข้อมูลต่อไฟล์เสียง นำหน้าด้วยแทร็ก
ตัวเลขและจุด:

...

12. เรซิตาทีฟ.
(ปิซาโร, ร็อคโค)

13. Duett: jetzt, Alter, jetzt hat es Eile, (ปิซาร์โร, ร็อคโค)

...

คำสั่งต่อไปนี้ใส่ข้อมูลนี้ในชื่อของแท็ก ID3 (ให้ไฟล์เสียง
ชื่อไฟล์มีข้อมูลเพียงพอเพื่อให้ MP3::Tag สามารถอนุมานหมายเลขแทร็กได้):

mp3info2 -u -C parse_split='\n(?=\d+\.)' -P 'fl;Parts;%=n. %NS'

หากข้อมูลย่อหน้านี้อยู่ในรูปแบบ "TITLE (COMMENT)" โดยมีส่วน "COMMENT" อยู่ด้วย
เป็นทางเลือก แล้วใช้

mp3info2 -u -C parse_split='\n(?=\d+\.)' -P 'fl;Parts;%=n. %t (%c);%=n. %NS'

หากคุณต้องการลบจุดหรือเครื่องหมายจุลภาคที่ส่วนท้ายของชื่อ ให้ใช้

mp3info2 -u -C parse_split='\n(?=\d+\.)' \
-P 'fl;อะไหล่;%=n. %t (%c);%=n. %t' -P 'iR;%t;%t[.,]$'

รูปแบบที่สองของการร้องขอนี้จะถูกแปลงเป็น

['iR', '%t' => '%t[.,]$']

ซึ่งโดยพื้นฐานแล้วจะใช้การแทนที่ "s/(.*)[.,]$/$1/s" กับชื่อ

ตอนนี้สมมติว่านอกเหนือจาก อะไหล่, เรามีไฟล์ข้อความ Comment พร้อมข้อมูลเพิ่มเติม
เราต้องการใส่ข้อมูลนี้ลงในช่องแสดงความคิดเห็น หลังจาก สิ่งที่สกัดมาจาก "TITLE
(COMMENT)"; แยกความคิดเห็นสองส่วนนี้ด้วยบรรทัดว่าง:

mp3info2 -EC -C 'parse_split=\n(?=\d+\.)' -C 'parse_join=\n\n' \
-P 'f;Comment;%c' -P 'fl;Parts;%=n. %NS' \
-P 'i;%t///%c;%t (%c)///%c' -P 'iR;%t;%t[.,]$'

ถือว่าชื่อเรื่องและความคิดเห็นไม่มี '///' เป็นสตริงย่อย
คำอธิบาย: รูปแบบแรกของ "-P"

['f', 'ความคิดเห็น' => '%c'],

อ่านความคิดเห็นจากไฟล์ "ความคิดเห็น" ลงในช่องแสดงความคิดเห็น ที่สอง,

['fl', 'Parts' => '%=n. %NS'],

อ่านส่วน "ชิ้นส่วน" ในช่องชื่อ ตัวที่สาม

['ผม', '%t///%c' => '%t (%c)///%c']

จัดเรียงชื่อเรื่องและความคิดเห็น ให้ ชื่อเรื่องอยู่ในรูปแบบ "TITLE (COMMENT)"
(ตัวเลือกการกำหนดค่า "parse_join" จะทำหน้าที่แยกความคิดเห็นออกเป็นสองส่วน
สอดคล้องกับการเกิด %c สองครั้งทางด้านขวามือ)

สุดท้าย รูปแบบที่สี่จะเหมือนกับในตัวอย่างก่อนหน้านี้ มันกำจัดสิ่งปลอมปน
เครื่องหมายวรรคตอนท้ายชื่อเรื่อง

ตัวอย่างเพิ่มเติม: การลบสตริง "with violin" ออกจากจุดเริ่มต้นของช่องแสดงความคิดเห็น (removing
แสดงความคิดเห็นทั้งหมดถ้าไม่มีอะไรเหลือ):

mp3info2 -u -P 'iz;%c;กับ violin%c' *.mp3

การตั้งค่าช่องศิลปินโดยไม่ปล่อยให้คุณลักษณะอัปเดตอัตโนมัติสรุปช่องอื่น ๆ จาก
แหล่งอื่น ๆ

mp3info2 -C autoinfo=ParseData -a "AU Thor" *.mp3

การตั้งค่าช่องแสดงความคิดเห็นเว้นแต่จะมีอยู่แล้ว:

mp3info2 -u -P 'i;%c///พร้อมเปียโน;///%c' *.mp3

ตัวอย่างสุดท้ายแสดงวิธีการเขียน "โปรแกรม" ในภาษาของ "-P" จริงๆ
ตัวเลือก: ตัวอย่างให้การกำหนดเงื่อนไข ด้วยตัวแปรผู้ใช้ (เช่นใน "%{U8}")
ชั่วคราว และความเป็นไปได้ที่จะใช้นิพจน์ทั่วไป หนึ่งสามารถให้โดยพลการ
ตรรกะเชิงโปรแกรม แน่นอน ที่ระดับความซับซ้อนระดับหนึ่ง ควรเปลี่ยนไปใช้
เชื่อมต่อโดยตรงกับโมดูล Perl "MP3::Tag" (ใช้รหัสของสคริปต์ Perl นี้เป็นan
ตัวอย่าง!).

นี่คือการตั้งค่างานทั่วไป "ขั้นสูง" id3v2 เฟรม: ผู้แต่ง ("TCOM") วงออเคสตรา
("TPE2") ตัวนำ ("TPE3") เราถือว่าไดเร็กทอรีทรีซึ่งมีไฟล์ MP3 ติดแท็ก
ด้วยอนุสัญญาดังต่อไปนี้: "ศิลปิน" แท้จริงแล้วเป็นนักแต่งเพลง "ความคิดเห็น" เป็นหนึ่งใน
สองรูปแบบ:

นักแสดง; วงออเคสตรา; คอนดักเตอร์
วงออเคสตรา; คอนดักเตอร์

ในการตั้งค่าเฟรม MP3 เฉพาะโดยใช้กฎ "-P" ให้ใช้

mp3info2 -@P "mi/@a/@{TCOM}" \
-P "mi/@c/@{U1}; @{TPE2}; @{TPE3}/@{TPE2}; @{TPE3}" -R

ด้วยตัวเลือก "-F" สิ่งนี้ทำให้ง่ายขึ้นเป็น

mp3info2 -@F "TCOM=@a" -P "mi/@c/@{U1}; @{TPE2}; @{TPE3}/@{TPE2}; @{TPE3}" -R

or

mp3info2 -@F "composer=@a" -P "mi/@c/@{U1}; @{TPE2}; @{TPE3}/@{TPE2}; @{TPE3}" -R

การคัดลอกแท็ก ID3 ของไฟล์ MP3 ในไดเร็กทอรีปัจจุบันไปยังไฟล์ในไดเร็กทอรี /tmp/mp3 สีสดสวย
ส่วนขยาย .แท็ก (และพิมพ์ "รายงานความคืบหน้า") ใช้

mp3info2 -p "@N@E\n" -@P "bODi,@{ID3v2}@{ID3v1},/tmp/mp3/@N.tag" -DNR

เนื่องจากเราไม่ได้ใช้แฟล็ก "z" ไฟล์ MP3 ที่ไม่มีแท็กจึงถูกข้ามไป

ทีนี้ สมมติว่ามีไฟล์เสียงและเนื้อเพลงที่มีลำดับชั้นคู่ขนานกัน:
ไฟล์เสียงอยู่ใน เสียง/dir_name/audio_name.mp3 พร้อมไฟล์เนื้อเพลงที่สอดคล้องกันใน
ข้อความ/dir_name/audio_name.mp3. การแนบเนื้อเพลงเป็นไฟล์ MP3 (ในกรอบ "COMM" ด้วย
คำอธิบาย "เนื้อเพลง" ในภาษา "อังกฤษ" - นี้ is a ไม่ได้มาตรฐาน สถานที่ เห็น ด้านล่าง),
โทรศัพท์

mp3info2 -@P "fim;../text/@{d0}/@B.txt;@{COMM(eng)[lyrics]}" -Ru

ภายในไดเร็กทอรี เสียง. (เปลี่ยน "fim" เป็น "Ffim" เพื่อละเว้นไฟล์เสียงที่
ไม่มีไฟล์ข้อความที่เกี่ยวข้อง) (แน่นอนว่าต้องปฏิบัติตามข้อกำหนด
เราควรจะใช้ฟิลด์ "%{USLT(eng)[]}" แทน "%{COMM(eng)[lyrics]}"; ดู
ด้านล่างสำหรับรูปแบบต่างๆ)

จบด้วยตัวอย่างง่ายๆ: ทั้งหมดมีรูปแบบอย่างไร

-ป'ฉัน%t;%t'

คือการลบช่องว่างต่อท้ายและนำหน้าออกจากชื่อเรื่อง (ซึ่งอนุมานโดยคนอื่น
วิธี).

เพิ่มเติม ตัวอย่าง


ด้วยตัวเลือก "-F" เราสามารถตั้งค่าเฟรม "USLT" เป็น

mp3info2 -@F "USLT(eng)[] < ../text/@{d0}/@B.txt" -Ru

พิมพ์กรอบดังกล่าว (ในภาษาใดก็ได้) ด้วย

mp3info2 -@p "@{USLT[]}\n" file.mp3

ในทำนองเดียวกัน หากต้องการพิมพ์เฟรม APIC พร้อมคำอธิบายที่ว่างเปล่า ให้ใช้

mp3info2 -e ไบนารี -@p "@{APIC[]}" file.mp3 > output_picture_file

หรือ (พร้อมคำอธิบาย "หน้าปก")

mp3info2 -@P "bOi,@{APIC[cover]},output_picture_file.jpg" loading="lazy" audio_07.mp3

การตั้งค่าเฟรมดังกล่าวจากไฟล์ xxx.gif (ด้วยค่าเริ่มต้น "ประเภทรูปภาพ", "หน้าปก (ด้านหน้า)",
และคำอธิบายที่ว่างเปล่า) ทำอย่างใดอย่างหนึ่งของ

mp3info2 -F "APIC < xxx.gif" file.mp3
mp3info2 -@F "APIC[]=@{I(fimbB)xxx.gif}" file.mp3

ความแตกต่างของ "APIC" และ "APIC[]" คืออันแรกจะลบเฟรม "APIC" ทั้งหมดออกก่อน
และอันที่สองจะลบเฉพาะเฟรม "APIC" ทั้งหมดที่มีคำอธิบายว่างเปล่า - แต่รูปภาพโดยพลการ
พิมพ์. เลยน่าจะเหมาะกว่าที่จะใช้สเปคเต็มๆ อย่าง "APIC(Cover .)"
(ด้านหน้า))[]".

หากต้องการลบเฟรม "APIC" ที่มีคำอธิบายว่าง ให้ใช้ "ประเภทรูปภาพ" (และ "MIME .) ตามอำเภอใจ
ชนิดที่อาจคำนวณได้อย่างถูกต้องโดย mp3info2เช่น "TIFF/JPEG/GIF/PNG") ใช้

mp3info2 -d "APIC[]" file.mp3

(โปรดทราบว่าสิ่งนี้จะไม่เพิ่มพื้นที่ว่างในดิสก์ เว้นแต่ว่า "การย่อ" จะถูกบังคับโดยการกำหนดค่า
ตัวแปร) ทำเช่นเดียวกันกับประเภทรูปภาพ "ตัวนำ" เท่านั้น do

mp3info2 -d "APIC(ตัวนำ)[]" file.mp3

ในการสแกนผ่านไดเร็กทอรีย่อยและเพิ่มไฟล์ cover.jpg จากไดเร็กทอรีของไฟล์เป็น a
เฟรม "ค่าเริ่มต้น" "APIC" แต่ถ้าไม่มีเฟรม "APIC" และมีไฟล์อยู่ ให้ทำ

mp3info2 -@F "APIC ?< @D/cover.jpg" loading="lazy" -R .

การดำเนินการนี้จะลบเฟรมว่างสำหรับวันที่ "TCOP, TENC, WXXX[], COMM(eng)[]" และลบ
นำ 0 จากหมายเลขแทร็กจากไฟล์ MP3 ในไดเรกทอรีปัจจุบัน:

mp3info2 -@ -E +/i:y -F "TCOP=@{TCOP}" -F "TENC=@{TENC}"
-F "WXXX[]=@{WXXX[]}" -F "COMM(eng)[]=@{COMM(eng)[]}"
-y "@y" -P "mi/@n/0@n/@n" *.mp3

ตัวอย่าง on การซื้อขาย สีสดสวย แตก การเข้ารหัส


จุดอ่อนที่สำคัญประการหนึ่งของข้อกำหนด ID3 คือจำเป็นต้องมีข้อมูล
มีให้ในการเข้ารหัส "latin-1" เนื่องจากภาษาส่วนใหญ่ในโลกไม่สามารถแสดงออกได้ใน
"latin-1" ทำให้แท็ก ID3 (ส่วนใหญ่?) ไม่เป็นไปตามมาตรฐาน ใหม่กว่า
เวอร์ชันของข้อมูลจำเพาะได้แก้ไขข้อบกพร่องนี้ แต่ความเสียหายได้เกิดขึ้นแล้ว
โชคดีที่สคริปต์นี้สามารถใช้ความสามารถของ "MP3::Tag" เพื่อแปลงจากที่ไม่เป็นไปตามข้อกำหนด
เนื้อหาให้สอดคล้องกัน

ตัวอย่างต่อไปนี้จะแปลงแท็ก ID3v2 ที่เขียนขึ้น (ไม่เป็นไปตามมาตรฐาน)
การเข้ารหัส "cp1251" ให้อยู่ในการเข้ารหัสที่เป็นไปตามมาตรฐาน เพื่อจุดประสงค์ของตัวอย่างนี้
สมมติว่าแท็ก ID3v1 อยู่ในการเข้ารหัสเดียวกัน (และแท็กนั้นต้องการทิ้งไว้ใน
การเข้ารหัส "cp1251"); ไฟล์ที่จะประมวลผลอยู่ในไดเร็กทอรีปัจจุบันและ
(เรียกซ้ำ) ในไดเรกทอรีย่อย (ไวยากรณ์ "set" สำหรับเชลล์ DOSISH):

ตั้งค่า MP3TAG_DECODE_V1_DEFAULT=cp1251
ตั้งค่า MP3TAG_DECODE_V2_DEFAULT=cp1251
mp3info2 -C id3v2_fix_encoding_on_write=1 -u2R

สำหรับข้อมูลเพิ่มเติม โปรดดู "สิ่งแวดล้อม" ใน MP3::Tag, "config" ใน MP3::Tag และ
"การปรับแต่ง" in MP3::Tag.

ความเข้ากันไม่ได้ สีสดสวย ข้อมูล mp3
เครื่องมือนี้สร้างแบบจำลองอย่างหลวมๆ ในโปรแกรม ข้อมูล mp3; มันเข้ากันได้กับ "ส่วนใหญ่" ย้อนหลัง
(โดยเฉพาะเมื่ออยู่ในโหมด "ไร้เดียงสา" ผ่าน "-N") และอนุญาตให้มี superset ที่สำคัญมากของ
ฟังก์ชั่น ความไม่ลงรอยกันย้อนหลังที่รู้จักกันดีคือ:

-G -h -r -d -x

ฟังก์ชั่นที่ขาดหายไป:

-f -F -ฉัน

เข้ากันไม่ได้ "%"-หนี:

%e %E - ความหมายที่แตกต่างอย่างสิ้นเชิง
%v - ไม่มี 0s ต่อท้าย
%q - มีเศษส่วน
%r - เป็นตัวเลข ไม่ใช่คำว่า "ตัวแปร" สำหรับ VBR
%u - น้อยกว่าหนึ่ง (ต่อหน้าเฟรมอธิบายเท่านั้น?)

หายไป "%"-หนี:

%ข %กรัม

แบ็กสแลช Escape: รองรับเฉพาะ "\\", "\n", "\t"

"-x" พิมพ์ข้อมูลในรูปแบบอื่น ไม่มีฟิลด์ทั้งหมด และชื่อแท็ก ID3v2
เป็นผลผลิต

และพวกเรา


ด้วย "-e" 1, 2 หรือ 3 สคริปต์นี้อาจศึกษาตัวแปรสภาพแวดล้อม "LC_CTYPE, LC_ALL,
LANG" เพื่ออนุมานการเข้ารหัสปัจจุบัน ไม่มีตัวแปรสภาพแวดล้อมอื่น ๆ ถูกอ่านโดยตรงโดย
สคริปต์นี้

อย่างไรก็ตาม โปรดทราบว่าโมดูล MP3::Tag มีชุดค่าเริ่มต้นมากมายสำหรับการตั้งค่าการเข้ารหัส
กำหนดได้โดยตัวแปรสภาพแวดล้อม ดู "สิ่งแวดล้อม" ใน MP3::Tag. ดังนั้นตัวแปรเหล่านี้
ส่งผลกระทบ (ทางอ้อม) ว่าสคริปต์นี้ทำงานอย่างไร

ล้าสมัย INTERFACE


หากคุณไม่เข้าใจว่าเนื้อหาเกี่ยวกับอะไร คุณสามารถเพิกเฉยต่อประกาศนี้ได้อย่างปลอดภัย:

เวอร์ชันเก่าก่อนเวอร์ชัน=1.05
ตัวเลือก) เพื่อให้หลายคำสั่งสำหรับตัวเลือก "-F" และ <-P> ยังคงได้รับการสนับสนุน แต่เป็น
ท้อแท้อย่างแรง (ไม่ขัดแย้งกับอินเทอร์เฟซปัจจุบัน)

ใช้ mp3info2p ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

คำสั่ง Linux

Ad




×
โฆษณา
❤️ช้อป จอง หรือซื้อที่นี่โดยไม่เสียค่าใช้จ่าย ช่วยให้บริการต่างๆ ฟรี