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
parent
33e5053c52
commit
6ba85c44fb
|
@ -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
|
||||
|
|
|
@ -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']:
|
||||
|
|
|
@ -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 . . .")
|
||||
|
|
2
setup.py
2
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',
|
||||
|
|
Loading…
Reference in New Issue