diff --git a/bandcamp_dl/bandcamp.py b/bandcamp_dl/bandcamp.py index 0a8ee14..f3dca40 100644 --- a/bandcamp_dl/bandcamp.py +++ b/bandcamp_dl/bandcamp.py @@ -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 diff --git a/bandcamp_dl/bandcamp_dl.py b/bandcamp_dl/bandcamp_dl.py index 611e2b5..8819af2 100755 --- a/bandcamp_dl/bandcamp_dl.py +++ b/bandcamp_dl/bandcamp_dl.py @@ -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']: diff --git a/bandcamp_dl/bandcampdownloader.py b/bandcamp_dl/bandcampdownloader.py index 29923ce..c687621 100644 --- a/bandcamp_dl/bandcampdownloader.py +++ b/bandcamp_dl/bandcampdownloader.py @@ -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 . . .") diff --git a/setup.py b/setup.py index 66f19c1..e8d7667 100644 --- a/setup.py +++ b/setup.py @@ -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',