Lyrics saved as USTL tag inside MP3

Modified/Merged @sun2rise's PR, was having issues merging the actual PR
due to the repo being gone (and I'm bad at git)

Had to make some changes to the imports as Mutagen has had some changes.
master
Anthony Forsberg 2016-12-27 18:25:21 -05:00
parent 33e5053c52
commit 6ba85c44fb
4 changed files with 19 additions and 8 deletions

View File

@ -1,6 +1,6 @@
from bs4 import BeautifulSoup
import requests
import jsobj
from .jsobj import read_js_object
class Bandcamp:
@ -65,6 +65,9 @@ class Bandcamp:
new_track['duration'] = track['duration']
new_track['track'] = track['track_num']
new_track['title'] = track['title']
if track['lyrics'] != 'null':
track['lyrics'] = track['lyrics'].encode(encoding='UTF-8', errors='ignore')
new_track['lyrics'] = track['lyrics'].replace('\\r\\n', '\n')
return new_track
@ -78,7 +81,7 @@ class Bandcamp:
stringBlock = block[1]
stringBlock = stringBlock.split("};")[0] + "};"
stringBlock = jsobj.read_js_object("var TralbumData = {}".format(stringBlock))
stringBlock = read_js_object("var TralbumData = {}".format(stringBlock))
if 'album_title' not in embedData['EmbedData']:
album['title'] = "Unknown Album"
@ -111,6 +114,6 @@ class Bandcamp:
embedStringBlock = embedBlock[1]
embedStringBlock = embedStringBlock.split("};")[0] + "};"
embedStringBlock = jsobj.read_js_object("var EmbedData = {}".format(embedStringBlock))
embedStringBlock = read_js_object("var EmbedData = {}".format(embedStringBlock))
return embedStringBlock

View File

@ -42,12 +42,11 @@ Iheanyi:
import os
from docopt import docopt
from bandcamp import Bandcamp
from bandcampdownloader import BandcampDownloader
from .bandcamp import Bandcamp
from .bandcampdownloader import BandcampDownloader
def main():
arguments = docopt(__doc__, version='bandcamp-dl 0.0.5')
bandcamp = Bandcamp()
if arguments['--artist'] and arguments['--album']:

View File

@ -1,9 +1,10 @@
import os
import sys
import requests
from mutagen.mp3 import MP3
from mutagen.id3._id3v1 import TIT2
from mutagen.id3 import ID3
from mutagen.id3._frames import USLT
from mutagen.easyid3 import EasyID3
from slugify import slugify
@ -49,6 +50,9 @@ class BandcampDownloader:
"track": track['track'],
"date": album['date']
}
if 'lyrics' in track.keys():
track_meta['lyrics'] = track['lyrics']
print("Accessing track " + str(track_index + 1) + " of " + str(len(album['tracks'])))
filename = self.template_to_path(track_meta)
@ -121,4 +125,9 @@ class BandcampDownloader:
audio["date"] = meta['date']
audio.save()
if 'lyrics' in meta.keys():
audio = ID3(filename)
audio[u"USLT::'eng'"] = (USLT(encoding=3, lang=u'eng', desc=u'', text=meta['lyrics']))
audio.save(filename)
print("Done encoding . . .")

View File

@ -6,7 +6,7 @@ here = path.abspath(path.dirname(__file__))
setup(
name='bandcamp-downloader',
version='0.0.5',
version='0.0.6',
description='bandcamp-dl downloads albums and tracks from Bandcamp for you',
long_description=open('README.rst').read(),
url='https://github.com/iheanyi/bandcamp-dl',