I need to extract ID3 tags and meta-data of remote mp3 files.
I wrote few lines that could get ID3 tags of local file:
from mutagen.mp3 import MP3
import urllib2
audio = MP3("Whistle.mp3")
songtitle = audio["TIT2"]
artist = audio["TPE1"]
print "Title: " + str(songtitle)
print "Artist: "+str(artist)
I need to achieve this for url links for mp3 files. I tried to get partial download of files using urllib2.
import urllib2
from mutagen.mp3 import MP3
req = urllib2.Request('http://www.1songday.com/wp-content/uploads/2013/08/Lorde-Royals.mp3')
req.headers['Range'] = 'bytes=%s-%s' % (0, 100)
response = urllib2.urlopen(req)
headers = response.info()
print headers.type
print headers.maintype
data = response.read()
print len(data)
How can I extract ID3 tags of the MP3 url without completly downloading the file?
In your example, the ID3 tags are not fetched, so you cannot extract them.
I played around a bit after reading the spec for ID3 and here's a good way to get started.
The id3 tags are stored in the ID3 metadata which is usually in front of the mp3 frames (containing the audio), but the mp3 standard allows them also to "follow the mp3 frames".
To download the minimum number of bytes you need to:
size
bytes of the mp3Here's a script (python 2 or 3) which extracts album art with a minimal amount of download size:
A few remarks:
python url.py http://www.fuelfriendsblog.com/listenup/01%20America.mp3