উত্তর:
আমি অন্যান্য সাফল্যের সাথে অন্য দিন আইডি 3 ব্যবহার করেছি । আমি আবিষ্কার করেছি যে এটি আইডি 3 ট্যাগটিতে শিল্পকর্ম যুক্ত করতে পারে যা অন্য মডিউলগুলি আমি দেখেছি তা করতে পারেনি। আপনাকে পিপ ব্যবহার করে ইনস্টল করতে হবে বা টারটি ডাউনলোড করতে হবে এবং python setup.py install
উত্স ফোল্ডারটি থেকে কার্যকর করতে হবে।
ওয়েবসাইট থেকে প্রাসঙ্গিক উদাহরণ নীচে।
ভি 1 বা ভি 2 ট্যাগ তথ্য সহ কোনও এমপি 3 ফাইলের বিষয়বস্তু পড়া:
import eyeD3
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
print tag.getArtist()
print tag.getAlbum()
print tag.getTitle()
একটি এমপি 3 ফাইল (ট্র্যাক দৈর্ঘ্য, বিটরেট ইত্যাদি) পড়ুন এবং এর ট্যাগটিতে অ্যাক্সেস করুন:
if eyeD3.isMp3File(f):
audioFile = eyeD3.Mp3AudioFile(f)
tag = audioFile.getTag()
নির্দিষ্ট ট্যাগ সংস্করণ নির্বাচন করা যেতে পারে:
tag.link("/some/file.mp3", eyeD3.ID3_V2)
tag.link("/some/file.mp3", eyeD3.ID3_V1)
tag.link("/some/file.mp3", eyeD3.ID3_ANY_VERSION) # The default.
অথবা আপনি কাঁচা ফ্রেমগুলি দিয়ে পুনরাবৃত্তি করতে পারেন:
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
for frame in tag.frames:
print frame
একবার কোনও ট্যাগ কোনও ফাইলের সাথে যুক্ত হয়ে গেলে এটি পরিবর্তন ও সংরক্ষণ করা যায়:
tag.setArtist(u"Cro-Mags")
tag.setAlbum(u"Age of Quarrel")
tag.update()
লিঙ্কযুক্ত ট্যাগটি যদি ভি 2 হয় এবং আপনি এটি ভি 1 হিসাবে সংরক্ষণ করতে চান:
tag.update(eyeD3.ID3_V1_1)
একটি ট্যাগ পড়ুন এবং এটি ফাইল থেকে সরান:
tag.link("/some/file.mp3")
tag.remove()
tag.update()
একটি নতুন ট্যাগ যুক্ত করুন:
tag = eyeD3.Tag()
tag.link('/some/file.mp3') # no tag in this file, link returned False
tag.header.setVersion(eyeD3.ID3_V2_3)
tag.setArtist('Fugazi')
tag.update()
import eyed3
(ছোট হাতের ডি) ব্যবহার করুন ।
আমি আগে মিডিয়া ফাইলগুলিতে ট্যাগ সম্পাদনা করতে মিউটেজেন ব্যবহার করেছি । মিউটাজেন সম্পর্কে দুর্দান্ত জিনিসটি হ'ল এটি অন্যান্য ফর্ম্যাটগুলি যেমন এমপি 4, এফএলএসি ইত্যাদি পরিচালনা করতে পারে আমি এই এপিআইটি ব্যবহার করে প্রচুর সাফল্য সহ বেশ কয়েকটি স্ক্রিপ্ট লিখেছি।
TIT2
এমপি 3 এর title
জন্য, ওগের \xa9nam
জন্য, এমপি 4 এর Title
জন্য, ডাব্লুএমএ ইত্যাদির জন্য - যা সফল হয়।
একটি সমস্যা eyed3
হ'ল এটি NotImplementedError("Unable to write ID3 v2.2")
সাধারণ এমপি 3 ফাইলগুলির জন্য ছুঁড়ে ফেলবে ।
আমার অভিজ্ঞতায় mutagen
ক্লাসটি EasyID3
আরও নির্ভরযোগ্যভাবে কাজ করে। উদাহরণ:
from mutagen.easyid3 import EasyID3
audio = EasyID3("example.mp3")
audio['title'] = u"Example Title"
audio['artist'] = u"Me"
audio['album'] = u"My album"
audio['composer'] = u"" # clear
audio.save()
অন্যান্য সমস্ত ট্যাগ এইভাবে অ্যাক্সেস করা যায় এবং সেভ করা যায়, যা বেশিরভাগ উদ্দেশ্যে পরিবেশন করবে। আরও তথ্য মুটাগেন টিউটোরিয়ালে পাওয়া যাবে ।
আপনি যা পরে আইডি 3 মডিউল। এটি খুব সহজ এবং আপনার যা প্রয়োজন ঠিক তা দেবে। কেবল আপনার সাইট-প্যাকেজ ডিরেক্টরিতে ID3.py ফাইলটি অনুলিপি করুন এবং আপনি নিম্নলিখিতগুলির মতো কিছু করতে সক্ষম হবেন:
from ID3 import *
try:
id3info = ID3('file.mp3')
print id3info
# Change the tags
id3info['TITLE'] = "Green Eggs and Ham"
id3info['ARTIST'] = "Dr. Seuss"
for k, v in id3info.items():
print k, ":", v
except InvalidTagError, message:
print "Invalid ID3 tag:", message
এটি পরীক্ষা করে দেখুন:
https://github.com/Ciantic/songdetails
ব্যবহারের উদাহরণ:
>>> import songdetails
>>> song = songdetails.scan("data/song.mp3")
>>> print song.duration
0:03:12
পরিবর্তনগুলি সংরক্ষণ করা হচ্ছে:
>>> import songdetails
>>> song = songdetails.scan("data/commit.mp3")
>>> song.artist = "Great artist"
>>> song.save()
আপনাদের কাছে কেবল অতিরিক্ত তথ্য:
পাইথনআইমন মিউজিকের পৃষ্ঠায় "এমপি 3 স্টাফ এবং মেটাডেটা সম্পাদক" বিভাগটি দেখুন ।
বই ডাইভ মধ্যে পাইথন আমার জন্য ঠিক কাজ করে থেকে সহজ উদাহরণটা, এই ডাউনলোড লিংক, উদাহরণস্বরূপ fileinfo.py হয়। এটি সেরা কিনা জানেন না তবে এটি প্রাথমিক কাজটি করতে পারে।
পুরো বইটি এখানে অনলাইনে উপলব্ধ ।
আমি উপরের উত্তরগুলি সন্ধান করেছি এবং জানতে পেরেছি যে জিপিএল লাইসেন্স সংক্রান্ত সমস্যার কারণে তারা আমার প্রকল্পের পক্ষে ভাল নয়।
এবং আমি এটি খুঁজে পেলাম: পাইআইডি 3 লাইব , সেই নির্দিষ্ট পাইথনের বাইন্ডিং মুক্তির তারিখটি পুরানো হলেও এটি আইডি 3 লিব ব্যবহার করে , যা নিজেই আপ টু ডেট।
উল্লেখ করার মতো বিষয় হ'ল উভয়ই এলজিপিএল , এবং যেতে ভাল।
সহজতম পদ্ধতি হ'ল গানের বিবরণ ..
তথ্য পড়ার জন্য
import songdetails
song = songdetails.scan("blah.mp3")
if song is not None:
print song.artist
একইভাবে সম্পাদনার জন্য
import songdetails
song = songdetails.scan("blah.mp3")
if song is not None:
song.artist = u"The Great Blah"
song.save()
যোগ করতে ভুলবেন না তোমার দর্শন লগ করা নাম আগে যতক্ষণ না আপনি চীনা ভাষা জানি।
আপনি পাইথন গ্লোব মডিউলটি ব্যবহার করে বাল্কে পড়া এবং সম্পাদনা করতে পারেন
প্রাক্তন।
import glob
songs = glob.glob('*') // script should be in directory of songs.
for song in songs:
// do the above work.
pip install
এখানে চোখের ত্রুটিযুক্ত 3, পাইগলিব এবং আইডি 3 মডিউলগুলির জন্য সরল রুটটি চেষ্টা করার পরে , আমি দেখতে পেলাম যে এই চতুর্থ বিকল্পটিই কাজ করেছিল। বাকিদের সি ++ বা কিছু ম্যাজিক বা অন্য কোনও লাইব্রেরি থেকে হারিয়ে যাওয়া নির্ভরতাগুলির সাথে আমদানি ত্রুটি ছিল pip
। আইডি 3 ট্যাগ (সমস্ত সংস্করণ) এর প্রাথমিক পাঠের জন্য এটির সাথে যান:
https://pypi.python.org/pypi/tinytag/0.18.0
from tinytag import TinyTag
tag = TinyTag.get('/some/music.mp3')
টিনিট্যাগ দিয়ে আপনি যে সম্ভাব্য বৈশিষ্ট্যগুলি পেতে পারেন তার তালিকা:
tag.album # album as string
tag.albumartist # album artist as string
tag.artist # artist name as string
tag.audio_offset # number of bytes before audio data begins
tag.bitrate # bitrate in kBits/s
tag.disc # disc number
tag.disc_total # the total number of discs
tag.duration # duration of the song in seconds
tag.filesize # file size in bytes
tag.genre # genre as string
tag.samplerate # samples per second
tag.title # title of the song
tag.track # track number as string
tag.track_total # total number of tracks as string
tag.year # year or data as string
বিজ্ঞাপন হিসাবে এটি ক্ষুদ্র এবং স্ব-অন্তর্ভুক্ত ছিল।
প্রথম উত্তর যা আইড 3 ব্যবহার করে তা পুরানো হয় তাই এটির একটি আপডেট সংস্করণ এখানে।
একটি এমপি 3 ফাইল থেকে ট্যাগ পড়া:
import eyed3
audiofile = eyed3.load("some/file.mp3")
print(audiofile.tag.artist)
print(audiofile.tag.album)
print(audiofile.tag.album_artist)
print(audiofile.tag.title)
print(audiofile.tag.track_num)
ট্যাগগুলি সংশোধন করার জন্য ওয়েবসাইটের একটি উদাহরণ:
import eyed3
audiofile = eyed3.load("some/file.mp3")
audiofile.tag.artist = u"Integrity"
audiofile.tag.album = u"Humanity Is The Devil"
audiofile.tag.album_artist = u"Integrity"
audiofile.tag.title = u"Hollow"
audiofile.tag.track_num = 2
প্রথমবারের জন্য আই 3 ব্যবহার করার চেষ্টা করার সময় আমি যে সমস্যার মুখোমুখি হয়েছিলাম তা ইনস্টল হওয়া সত্ত্বেও লিবম্যাগিকের একটি আমদানি ত্রুটির সাথে করণীয় ছিল। এটিকে ঠিক করার জন্য এখান থেকে ম্যাজিক-বিন WHL ইনস্টল করুন
আমি এমপি 3-ট্যাগার প্রস্তাব করব । এটির সর্বোত্তম বিষয় হ'ল এটি এমআইটি লাইসেন্সের অধীনে বিতরণ করা হয়েছে এবং সমস্ত প্রয়োজনীয় বৈশিষ্ট্যকে সমর্থন করে।
- artist;
- album;
- song;
- track;
- comment;
- year;
- genre;
- band;
- composer;
- copyright;
- url;
- publisher.
উদাহরণ:
from mp3_tagger import MP3File
# Create MP3File instance.
mp3 = MP3File('File_Name.mp3')
# Get all tags.
tags = mp3.get_tags()
print(tags)
এটি এমপি 3 ফাইলের বৈশিষ্ট্যগুলি সেট, পান, আপডেট এবং মোছা সমর্থন করে।
এটি মেটাটাটা পড়া ছাড়াও আপনি ঠিক কী করতে চান তার উপর নির্ভর করতে পারে। আপনার যদি প্রয়োজন কেবল বিট্রেট / নাম ইত্যাদি যদি হয় এবং অন্য কিছু না হয় তবে হালকা কিছু সম্ভবত সম্ভবত সেরা।
আপনি যদি এমপি 3 অতীতে হেরফের করছেন তবে পাইমিডিয়া উপযুক্ত হতে পারে।
বেশ কয়েকটি রয়েছে, আপনি যা কিছু পান তা নিশ্চিত করুন এবং প্রচুর নমুনা মিডিয়াতে এটি পরীক্ষা করুন। বিশেষত আইডি 3 ট্যাগের কয়েকটি পৃথক সংস্করণ রয়েছে, তাই নিশ্চিত হয়ে নিন যে এটি খুব বেশি পুরানো নয়।
ব্যক্তিগতভাবে আমি ভাগ্যের সাথে এই ছোট এমপি 3আইএনফো ক্লাসটি ব্যবহার করেছি। যদিও এটি বেশ পুরানো।
কিছু প্রাথমিক গবেষণার পরে আমি ভেবেছিলাম গানের শিরোনামগুলি আমার ব্যবহারের ক্ষেত্রে ফিট করতে পারে তবে এটি .m4b ফাইলগুলি হ্যান্ডেল করে না। মুটাগেন করেন। নোট করুন যে মুটাগেনের ফরম্যাট-নেটিভ কীগুলির সারফেসিংয়ের ক্ষেত্রে কিছুটি (যুক্তিসঙ্গতভাবে) সমস্যা নিয়েছে, যেগুলি ফর্ম্যাট থেকে ফর্ম্যাটে পরিবর্তিত হয় (এমপি 3-এর জন্য টিআইটি 2, এমপি 4 এর জন্য শিরোনাম, ডাব্লুএমএর জন্য শিরোনাম ইত্যাদি), মিটেজেন.ফাইল ( ) এর একটি (নতুন?) সহজ = সত্য পরামিতি যা সহজ এমপি 3 / ইজিআইডি 3 ট্যাগ সরবরাহ করে, যা নিয়মিত, কীগুলির সেট সীমাবদ্ধ রয়েছে। আমি এখনও অবধি কেবল সীমিত পরীক্ষা করেছি, তবে সাধারণ কীগুলি, যেমন অ্যালবাম, শিল্পী, আলবুমার্টিস্ট, জেনার, ট্র্যাকনামার, ডিস্কনবার ইত্যাদি ইত্যাদি সহজ এবং সত্য ব্যবহার করে .mb4 এবং .mp3 ফাইলগুলির জন্য উপস্থিত এবং অভিন্ন it আমার উদ্দেশ্যে খুব সুবিধাজনক।
https://github.com/nicfit/eyeD3 ব্যবহার করে
import eyed3
import os
for root, dirs, files in os.walk(folderp):
for file in files:
try:
if file.find(".mp3") < 0:
continue
path = os.path.abspath(os.path.join(root , file))
t = eyed3.load(path)
print(t.tag.title , t.tag.artist)
#print(t.getArtist())
except Exception as e:
print(e)
continue
আমি টিনিট্যাগটি 1.3.1 ব্যবহার করেছি কারণ
1.3.0 (2020-03-09):
added option to ignore encoding errors ignore_errors #73
Improved text decoding for many malformed files
MP3 (ID3 v1, v1.1, v2.2, v2.3+)
Wave/RIFF
OGG
OPUS
FLAC
WMA
MP4/M4A/M4B
from tinytag import TinyTag
fileNameL ='''0bd1ab5f-e42c-4e48-a9e6-b485664594c1.mp3
0ea292c0-2c4b-42d4-a059-98192ac8f55c.mp3
1c49f6b7-6f94-47e1-a0ea-dd0265eb516c.mp3
5c706f3c-eea4-4882-887a-4ff71326d284.mp3
'''.split()
for fn in fileNameL:
fpath = './data/'+fn
tag = TinyTag.get(fpath)
print()
print('"artist": "%s",' % tag.artist)
print('"album": "%s",' % tag.album)
print('"title": "%s",' % tag.title)
print('"duration(secs)": "%s",' % tag.duration)
JoeTagPj>python joeTagTest.py
"artist": "Conan O’Brien Needs A Friend",
"album": "Conan O’Brien Needs A Friend",
"title": "17. Thomas Middleditch and Ben Schwartz",
"duration(secs)": "3565.1829583532785",
"artist": "Conan O’Brien Needs A Friend",
"album": "Conan O’Brien Needs A Friend",
"title": "Are you ready to make friends?",
"duration(secs)": "417.71840447045264",
"artist": "Conan O’Brien Needs A Friend",
"album": "Conan O’Brien Needs A Friend",
"title": "Introducing Conan’s new podcast",
"duration(secs)": "327.22187551899646",
"artist": "Conan O’Brien Needs A Friend",
"album": "Conan O’Brien Needs A Friend",
"title": "19. Ray Romano",
"duration(secs)": "3484.1986772305863",
C:\1d\PodcastPjs\JoeTagPj>