هذا هو الأمر 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
mp3info2 -NC autoinfo=ID3v1 *.mp3
# احصل على الفنان من CDDB_File، واستنتج معلومات أخرى تلقائيًا، واكتبها في العلامات
mp3info2 -C Artist=CDDB_File -u *.mp3
# بالنسبة للعنوان، تفضل المعلومات من ملف .inf؛ الاستخلاص التلقائي للراحة والتحديث
mp3info2 -C title=Inf,ID3v2,ID3v1,اسم الملف -u *.mp3
# نفس الشيء، واحصل على الفنان من ملف CDDB
mp3info2 -C title=Inf,ID3v2,ID3v1,اسم الملف -C Artist=CDDB_File -u *.mp3
# اكتب برنامج نصي لتحويل .wav إلى .mp3، واستخلاص العلامات تلقائيًا
mp3info2 -p "lame -h --vbr-new --tt '%t' --tn %n --ta '%a' --tc '%c' --tl '%l' --ty '% y' '%f'\n" *.wav >xxx.sh
الوصف
يقوم البرنامج بطباعة رسالة تلخص معلومات العلامة (التي تم الحصول عليها عبر وحدة MP3::Tag) لـ
الملفات المحددة.
وقد يقوم أيضًا بتحديث المعلومات الموجودة في علامات ID3. يحدث هذا في ثلاث حالات مختلفة.
· إذا كانت المعلومات المتوفرة في خيارات سطر الأوامر "talygcn" تختلف عن تلك الموجودة في سطر الأوامر
محتوى علامات ID3 المقابلة (أو لا توجد علامات ID3 المقابلة).
· إذا تم إعطاء الخيارين "-d" أو "-F".
· إذا حصل "MP3::Tag" على المعلومات من وسائل أخرى غير علامات MP3، وقام "-u" بفرض
تحديث علامات ID3.
(يتم تعطيل كل هذه الطرق بواسطة الخيار "-D".) تتم كتابة علامة ID3v2 إذا لزم الأمر، أو إذا كان "-2"
يتم إعطاء الخيار. (الملء التلقائي للحقول القابلة للاستنتاج (عبر الطريقة
id3v2_frames_autofill()) يتم تنفيذه ما لم يتم توفير خيارات "-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" (التشغيل الجاف)، لا يتم إجراء أي تحديث، بغض النظر عن الخيارات الأخرى.
باستخدام هذا الخيار، لا يتم إجراء أي تحليل للعلامات إلا إذا لزم الأمر.
استخدم الخيارات
com.talygcn
لاستبدال المعلومات (عنوان الألبوم، العام، النوع، التعليق، رقم المسار) التي تم الحصول عليها
عبر الاستدلال "MP3::Tag" ("-u" يتم تضمين المفتاح في حالة اختلاف أي من هذه الوسيطات
مما يمكن العثور عليه بخلاف ذلك؛ استخدم مفتاح "-D" لتعطيل التحديث التلقائي). بشكل افتراضي،
قيم هذه الخيارات ليست محرفة بـ "%"؛ قد يتم تغيير هذا عن طريق الخيار "-E".
يجب أن يحتوي الخيار "-d" على قائمة مفصولة بفواصل لإطارات ID3v2 المطلوب حذفها. أ
مواصفات الإطار هي نفس ما يمكن إعطاؤه لاستكمال الإطار "%{...}".
الأمر، على سبيل المثال، "TIT3"، "COMM03"، "COMM(fra)[عنوان قصير]"؛ الفرق مع تعديل-
الوصول هو ذلك الجميع ( وليس أول of) يتم حذف الإطارات المطابقة. (الخيار -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"؛ في هذه الحالة القيمة المراد ضبطها
تتم قراءتها من الملف المسمى FILE; إذا كان الإطار عبارة عن نص فقط (يعني: على الأكثر
الحقول "[المشفرة] وصف لغة URL النصية" موجودة)، تتم قراءة الملف نصيًا
الوضع (مع تجريد المسافة البيضاء للبدء/الزائدة)، وإلا فستتم قراءته بشكل ثنائي
وضع. (مسافة بيضاء مطلوبة حول العلامات "<".) إذا تم استبدال "<" بـ "?<"، فإن
يتم تعيين القيمة فقط إذا لم يكن الإطار موجودًا بعد، وإذا كان الملف موجودًا؛ إذا تم استبداله بـ ">"،
تتم كتابة القيمة (إذا كانت موجودة). FILE (إنشاء الدلائل المتوسطة هو
يتم التحكم فيه بواسطة خيار التكوين "frames_write_creates_dirs"، الإعداد الافتراضي هو FALSE).
بالإضافة إلى ذلك، قد يكون "FRAME_spec" واحدًا من "ID3v1" أو "ID3v2" أو "TAGS"؛ في هذه الحالة، كله
العلامات مكتوبة أو مقروءة. على سبيل المثال، بالنسبة إلى "TAGS < FILE"، "عنوان ألبوم الفنان العام النوع
يتم حساب معلومات مسار التعليق من FILE، والتي قد تكون علامات أولية، كما تم إنتاجها باستخدام ">"،
أو ملف MP3 صالح؛ في حالة وجود Image::ExifTool، قد تتم قراءة البيانات بشكل عشوائي
ملف الوسائط المتعددة. (وبالمثل، بالنسبة لـ "ID3v1 <FILE"، يتم استخراج نفس المعلومات من "ID3v1"
علامة فقط.) بعد ذلك، في حالة "ID3v2" أو "TAGS"، يتم نسخ إطارات "ID3v2" من
علامة "ID3v2" واحدة تلو الأخرى. (مع التعديلات المناسبة لـ "?<".)
بشكل افتراضي، "VALUE" لـ "-F" هي "%"-محرفة؛ يمكن تغيير ذلك عن طريق الخيار "-E".
من أجل راحة المستخدم، تم إنشاء أشكال أكثر ملاءمة للإنسان "الملحن، النص، الأوركسترا، قائد الفرقة الموسيقية،
"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 (للآثار الجانبية). (راجع الأمثلة: "أمثلة: تحليل
قواعد".)
إذا تم تحديد الخيار "-G"، فسيتم اعتبار أسماء الملفات الموجودة في سطر الأوامر على أنها عالمية
أنماط. قد يكون هذا مفيدًا إذا كان الحد الأقصى لطول سطر الأوامر منخفضًا جدًا. مع ال
يمكن أن تكون وسيطات الخيار "-R" عبارة عن أدلة يتم البحث فيها بشكل متكرر عن الصوت
(إفتراضي * .mp3) الملفات المراد معالجتها؛ استخدم الخيار "-r" لإعادة تعيين التعبير العادي ليبدو
لـ (الافتراضي هو "(؟i:\.mp3$)").
يتحكم الخيار "-E" في توسيع أحرف الهروب. يجب أن تحتوي على الحروف
خيارات سطر الأوامر حيث يتم استيفاء "\\، \n، \t"؛ يمكن للمرء إلحاق الحروف
من خيارات "talygcn F" التي تتطلب الاستيفاء "%" بعد الفاصل "/i:" (لـ
"-F"، يتم تحريف القيم فقط). القيمة الافتراضية هي "p/i:Fp": فقط "-p" هي
"\"-محرف، وفقط "-F" و"-p" يخضعان للاستيفاء "%". إذا كان كل واحد
يريد هو تضيف إلى الإعدادات الافتراضية، تسبق القيمة "-E" (التي تحتوي على خيارات مضافة) بواسطة
"+". (يتم تحريف بعض أجزاء قيمة الخيار "-P"، ولكن يجب أن يتم ذلك
محكومة بالأعلام، وليس "-E"؛ يفعل لا ضع "P" في الجزء "%" المحرف من "-E".)
إذا تم تحديد الخيار "-@"، فسيتم استبدال كافة الأحرف "@" في الخيارات بـ "%". هذا
قد يكون مناسبًا إذا كانت الصدفة تتعامل مع "%" بشكل خاص (على سبيل المثال، قذائف DOSISH).
إذا تم إعطاء الخيار "-I"، فلا داعي للتخمين فنان يتم تنفيذ الحقل على الكتابة.
يقوم الخيار "-C CONFIG_OPT=VALUE1,VALUE2..." بتعيين بيانات التكوين "MP3::Tag" كما هي
الطريقة كـ "MP3::Tag-"التكوين ()> سيفعل (تذكر أن القيمة عبارة عن مصفوفة؛ وعناصر منفصلة
بفواصل إذا كانت أكثر من واحدة). يمكن تكرار الخيار لتعيين أكثر من قيمة. ملحوظة
أنه نظرًا لاستخدام "ParseData" لمعالجة وصفات التحليل "-P"، فمن الأفضل الاحتفاظ به
في تكوين "المعلومات التلقائية" (والحقول ذات الصلة "المؤلف" وما إلى ذلك) بحضور "-P".
إذا تم تحديد الخيار "-x"، فستتم طباعة المعلومات الفنية حول الملف الصوتي
(مستوى MP3، والمدة، وعدد الإطارات، والحشو، وحقوق النشر، وقائمة إطار ID3v2
أسماء بتنسيق مناسب للهروب "%{...}"). إذا تم تكرار "-x"، فسيتم تكرار محتوى الإطارات
تمت طباعته أيضًا (قد يُخرج أحرفًا غير قابلة للطباعة، إذا تكرر ذلك أكثر من مرتين).
إذا تم إعطاء الخيار "-N"، فسيتم تعطيل جميع "الميزات الذكية" - ولا توجد تسوية للحقول
يحدث، و(افتراضيًا) لا توجد محاولة لاستنتاج قيم الحقول من غير ID3
تتم المعلومات. هذا الخيار يعادل (حاليًا) وجود "-C
autoinfo=ParseData,ID3v2,ID3v1" باعتباره التوجيه الأول لعدم وجود
تطبيع::نص::Music_Fields.pm موجود على مسار @INC، ولا يتصل الملء التلقائي () الأسلوب.
تطبيع 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 "allegretto, Bes" -@p "@t\n" ""
mp3info2 -D -a بيتهوفن -t "op93" -@p "@t\n" ""
سيتم طباعة اسم الشخص المقيس لـ "بيتهوفن"، وهو الاسم القصير المطابق
اسم الشخص، والعنوان الطبيعي لـ "السوناتة رقم 28" للملحن "بيتهوفن". على سبيل المثال،
مع جداول التطبيع المشحونة، سيتم طباعته
لودفيج فان بيتهوفن (1770-1827)
إل فان بيتهوفن
سوناتا البيانو رقم 28 في التخصص؛ مرجع سابق. 101 (1816)
Allegretto لـ Piano Trio في B flat الكبرى؛ وو 39 (1812)
السمفونية رقم 8 في F الكبرى؛ مرجع سابق. 93 (comp. 1812، fp Vienna، 1814/02/27، cond. Beethoven؛ pubd. 1816)
إنّ طلب of عملية
حاليًا، تتم العمليات بالترتيب التالي
· حذف ID3v1 أو ID3v2 ككل عبر الخيار "-d".
· تم إعداد خيار المستلمين "-P" (يتم تشغيله عن طريق الاستيفاء)؛
· يتم الإعداد عبر خيارات "-a/-t/-l/-y/-g/-c/-n" ؛
· الإعدادات تتم عبر خيار "-F".
· حذف الإطارات الفردية عبر خيار "-d".
· الملء التلقائي لإطارات ID3v2 (id)؛
· إرسال المعلومات بناءً على خيارات "-p" و"-x".
· إطلاق المستلمين لـ "-P" (إذا لم يتم تشغيله عن طريق الاستيفاء)؛
· تحديث العلامات إذا لزم الأمر.
الأستعمال إستراتيجية: التصعيد of تعقيد
الغرض من هذا البرنامج النصي هو جعل التعامل مع علامات ID3 أمرًا بسيطًا as ممكن.
على أحد طرفي المقياس، يمكن للمرء إجراء عمليات معالجة معقدة بشكل عشوائي باستخدام العلامات
وحدة بيرل "MP3::Tag".
من ناحية أخرى، يعد التعامل مع أبسط عمليات التلاعب بالعلامات أكثر ملاءمة
باستخدام خيارات هذا البرنامج النصي "-t -a -l -y -g -c -n" و"-p -F -d". لأكثر قليلا
مهام معقدة، قد يحتاج المرء إلى استخدام طريقة أكثر تفصيلا تحليل القواعد، قدمت
إلى هذا البرنامج النصي عن طريق الخيار "-P"؛ القواعد تعتمد بشكل كبير على إقحام، انظر
"interpolate" في 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 ،
من الأفضل استخدام "-@"، واستبدال "%" بـ "@" أدناه.)
"-قيمة"
-ف "mz/VALUE/%t"
"-أ -ل -ي -ز -ج -ن"
بطريقة مماثلة.
"-F" "TIT2=VALUE"
-P "mzi/VALUE/%{TIT2}"
"-F" "APIC[myDescr] <FILE"
-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 ثنائي -p "%{APIC[myDescr]}""
مع إعادة التوجيه، راجع "أمثلة: قواعد التحليل".
"-د" TIT2
-ف "م//%{TIT2}"
"-F" "TIT2 ؟<ملف"
مخادع جدا. لن يؤدي هذا إلى التمييز بين الملف الفارغ والملف غير الموجود:
-P "mzi/%{TIT2:1}0%{I(fFim)FILE}/10/10%{TIT2}/0%{U1}"
(أضف "bB" إلى "fFim" للإطارات غير النصية فقط)؛ قد يتم حذف الجزء الأخير
إذا حذف أحد العلامة "m" - فهي موجودة لالتقاط الأخطاء المطبعية فقط.
للحصول على تفاصيل حول "قواعد التحليل"، راجع "أمثلة: قواعد التحليل" و"الوصف" في
MP3::العلامة::تحليل البيانات.
أمثلة: تحليل القواعد
فقط خيار "-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"
حروف العلم ترمز إلى محرف, must_match. هذا يقحم السلسلة
"%{d0}/%f" ويوزع النتيجة (وهو اسم الملف بمستوى واحد من الدليل
الجزء المحفوظ) باستخدام النمط المحدد؛ وبالتالي يصبح اسم الدليل الفنان
الجزء الرقمي الأول - رقم المسار وبقية اسم الملف (بدون ملحق)
- العنوان. لاحظ أنه بما أن الأنماط المتعددة مسموح بها، فيمكن للمرء أن يسمح بالمثل
صيغ متعددة للأسماء، على سبيل المثال
-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 Pattern2
"أنا" "%{d0}" "%a"
"im" "%f" "%n %t.%e" "%t (%y).%e"
وبطبيعة الحال، يمكن للمرء أن يستخدم
"الملف" "%B" "%n %t" "%t (%y)"
كبديل للثانية.
لاحظ أنه قد يكون أكثر قابلية للقراءة للضبط فنان إلى "%{d0}" عن طريق مهمة صريحة، مع
الحجج المشابهة ل
-E "p/i:Fpa" -a "%{d0}"
(تتطلب قيمة "-E" استيفاء "%" للخيار "-a" بالإضافة إلى
الافتراضي "\" - الاستيفاء لـ "-p"، و"%" - الاستيفاء لـ "-F" و"-p"؛ يمكن للمرء
اختصرها بـ "-E +/i:a").
ولإعطاء المزيد من الأمثلة،
-P "إذا=%D/.comment=%c"
سوف يقرأ التعليق من الملف .تعليق في دليل الملف الصوتي؛
-P "ifn=%D/.comment=%c"
له تأثير مماثل إذا كان الملف .تعليق يحتوي على تعليقات من سطر واحد، واحدة لكل مسار (وهذا يفترض
يمكن العثور على رقم المسار بوسائل أخرى).
لنفترض أن ملف قطع غيار في دليل ملفات MP3 بالتنسيق التالي: يحتوي على ملف
ديباجة، ثم تحتوي على فقرة قصيرة من المعلومات لكل ملف صوتي، يسبقها المسار
رقم ونقطة:
12. ريزيتاتيف.
(بيزارو، روكو)
13. دويت: jetzt، Alter، jetzt hat es Eile، (بيزارو، روكو)
يضع الأمر التالي هذه المعلومات في عنوان علامة ID3 (شريطة أن يكون ملف الصوت
تعد أسماء الملفات غنية بالمعلومات بما يكفي بحيث يمكن لـ MP3::Tag استنتاج رقم المسار):
mp3info2 -u -C parse_split='\n(?=\d+\.)' -P 'fl;Parts;%=n. %t'
إذا كانت هذه الفقرة من المعلومات تحتوي على النموذج "العنوان (التعليق)" مع الجزء "التعليق".
كونها اختيارية، ثم استخدم
mp3info2 -u -C parse_split='\n(?=\d+\.)' -P 'fl;Parts;%=n. %t (%c);%=n. %t'
إذا كنت تريد إزالة نقطة أو فاصلة في نهاية العنوان، استخدم
mp3info2 -u -C parse_split='\n(?=\d+\.)' \
-P 'fl;أجزاء;%=n. %t (%c);%=n. %t' -P 'iR;%t;%t[.,]$'
يتم تحويل النمط الثاني من هذا الاستدعاء إلى
['iR', '%t' => '%t[.,]$']
والذي يطبق بشكل أساسي الاستبدال "s/(.*)[.,]$/$1/s" على العنوان.
الآن لنفترض أنه بالإضافة إلى قطع غيار، لدينا ملف نصي كيف مع معلومات إضافية؛
نريد وضع هذه المعلومات في حقل التعليق بعد ما هو مستخرج من "TITLE
(COMMENT)"؛ افصل بين هذين الجزأين من التعليق بخط فارغ:
mp3info2 -EC -C 'parse_split=\n(?=\d+\.)' -C 'parse_join=\n\n' \
-P 'f;Comment;%c' -P 'fl;Parts;%=n. %t' \
-P 'i;%t///%c;%t (%c)///%c' -P 'iR;%t;%t[.,]$'
يفترض هذا أن العنوان والتعليق لا يحتويان على "///" كسلسلة فرعية.
شرح: النمط الأول من "-P"،
['f', 'تعليق' => '%c'],
يقرأ التعليق من ملف "التعليق" في حقل التعليق؛ الثاني،
['fl', 'أجزاء' => '%=n. %t']،
يقرأ جزءًا من "الأجزاء" في حقل العنوان. الثالث
['i', '%t///%c' => '%t (%c)///%c']
يعيد ترتيب العنوان والتعليق المقدمة العنوان على شكل "TITLE (COMMENT)".
(يهتم خيار التكوين "parse_join" بفصل قطعتين من التعليق
المقابلة لحدثين %c على الجانب الأيمن.)
وأخيرًا، النمط الرابع هو نفسه كما في المثال السابق؛ فإنه يزيل زائفة
علامات الترقيم في نهاية العنوان.
المزيد من الأمثلة: إزالة السلسلة "مع الكمان" من بداية حقل التعليق (إزالة
علق بالكامل إذا لم يبق شيء):
mp3info2 -u -P 'iz;%c;مع الكمان%c' *.mp3
تعيين حقل الفنان دون السماح لميزة التحديث التلقائي باستخراج الحقول الأخرى منه
مصادر أخرى؛
mp3info2 -C autoinfo=ParseData -a "AU Thor" *.mp3
تعيين حقل تعليق ما لم يكن موجودًا بالفعل:
mp3info2 -u -P 'i;%c///مع البيانو;///%c' *.mp3
المثال الأخير يوضح كيفية كتابة "البرامج" فعلياً بلغة "-P"
الخيار: المثال يعطي مهمة مشروطة. مع متغيرات المستخدم (كما في "%{U8}")
بالنسبة للمؤقتين، وإمكانية استخدام التعبيرات العادية، يمكن للمرء أن يوفر تعسفيًا
منطق برمجي. بالطبع، عند مستوى معين من التعقيد، من الأفضل التبديل إليه
التواصل المباشر مع وحدة Perl "MP3::Tag" (استخدم رمز البرنامج النصي Perl هذا كملف
مثال!).
فيما يلي إعداد مهمة نموذجية لإطارات 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 الموجودة في الدليل الحالي إلى الملفات الموجودة في الدليل /تمب/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" باستخدام
وصف "كلمات" في اللغة "eng" - is a غير قياسي موقعك، انظر تعريف أدناه!),
دعوة
mp3info2 -@P "fim;../text/@{d0}/@B.txt;@{COMM(eng)[lyrics]}" -Ru .
داخل الدليل سمعي. (قم بتغيير "fim" إلى "Ffim" لتجاهل الملفات الصوتية التي
الملف النصي المقابل غير موجود.) (بالطبع لمتابعة المواصفات،
كان يجب على المرء استخدام الحقل "%{USLT(eng)[]}" بدلاً من "%{COMM(eng)[lyrics]}"؛ يرى
أدناه للاختلافات).
أنهي بمثال بسيط جدًا: كل ما هو النمط
-ف 'i;%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" التحميل = "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
type" والتي يمكن حسابها بشكل صحيح بواسطة mp3info2، على سبيل المثال، "TIFF/JPEG/GIF/PNG")، استخدم
mp3info2 -d "APIC[]" file.mp3
(لاحظ أن هذا لن يؤدي إلى تحرير مساحة على القرص، إلا إذا تم فرض "التقليص" بواسطة التكوين
المتغيرات). للقيام بنفس الشيء مع نوع الصورة "الموصل" فقط، افعل ذلك
mp3info2 -d "APIC(موصل)[]" file.mp3
للمسح من خلال الدلائل الفرعية، وإضافة ملف cover.jpg من دليل الملف بصيغة a
إطار "APIC" "افتراضي"، ولكن فقط في حالة عدم وجود إطار "APIC" ووجود ملف، قم بذلك
mp3info2 -@F "APIC ?< @D/cover.jpg" التحميل = "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")؛ تم العثور على الملفات المراد معالجتها في الدليل الحالي و
(بشكل متكرر) في الدلائل الفرعية الخاصة به (بناء جملة "تعيين" لقذائف 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، و
"التخصيص" في MP3::Tag.
عدم التوافق مع mp3info
تم تصميم هذه الأداة بشكل فضفاض على البرنامج mp3info; وهو متوافق مع الإصدارات السابقة "في الغالب".
(خاصة عندما تكون في الوضع "الساذج" عبر "-N")، وتسمح بمجموعة شاملة كبيرة جدًا من
وظائف. حالات عدم التوافق مع الإصدارات السابقة المعروفة هي:
-ز -ح -ص -د -س
الوظيفة المفقودة:
-و -F -i
غير متوافق "٪"-الهروب:
%e %E - دلالات مختلفة تمامًا
%v - لا يحتوي على أصفار زائدة
%q - يحتوي على جزء كسري
%r - رقم، وليس كلمة "متغير" لـ VBR
%u - هل أقل بمقدار واحد (في وجود إطار واصف فقط؟)
مفتقد "٪"-الهروب:
%ب %ز
هروب الشرطة المائلة العكسية: فقط "\\"، "\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