def load_defaults(): const.args = handle.get_arguments(to_group=False, raw_args='') const.args.folder = 'test' const.args.overwrite = 'skip' const.args.log_level = handle.logging.DEBUG spotdl.args = const.args spotdl.log = const.logzero.setup_logger(formatter=const.formatter, level=const.args.log_level)
def load_defaults(): const.args = handle.get_arguments(raw_args='', to_group=False, to_merge=False) const.args.overwrite = 'skip' spotdl.args = const.args spotdl.log = const.logzero.setup_logger(formatter=const.formatter, level=const.args.log_level)
def main(): const.args = handle.get_arguments() const.log = const.logzero.setup_logger(formatter=const.formatter, level=const.args.log_level) log = const.log log.debug('Python version: {}'.format(sys.version)) log.debug('Platform: {}'.format(platform.platform())) log.debug(pprint.pformat(const.args.__dict__)) try: if const.args.song: download_single(raw_song=const.args.song) except KeyboardInterrupt as e: log.exception(e) sys.exit(3) pass
def main(): const.args = handle.get_arguments() if const.args.version: print('spotdl {version}'.format(version=__version__)) sys.exit() internals.filter_path(const.args.folder) youtube_tools.set_api_key() const.log = const.logzero.setup_logger(formatter=const._formatter, level=const.args.log_level) global log log = const.log log.debug('Python version: {}'.format(sys.version)) log.debug('Platform: {}'.format(platform.platform())) log.debug(pprint.pformat(const.args.__dict__)) try: if const.args.song: download_single(raw_song=const.args.song) elif const.args.list: download_list(text_file=const.args.list) elif const.args.playlist: spotify_tools.write_playlist(playlist_url=const.args.playlist) elif const.args.album: spotify_tools.write_album(album_url=const.args.album) elif const.args.username: spotify_tools.write_user_playlist(username=const.args.username) # actually we don't necessarily need this, but yeah... # explicit is better than implicit! sys.exit(0) except KeyboardInterrupt as e: log.exception(e) sys.exit(3)
if not const.args.input_ext == const.args.output_ext: os.remove(os.path.join(const.args.folder, input_song)) if not const.args.no_metadata and meta_tags is not None: metadata.embed(os.path.join(const.args.folder, output_song), meta_tags) if const.args.preserve_spaces and "_" in output_song: song_path = os.path.join(const.args.folder, output_song.replace('_', ' ')) os.rename(os.path.join(const.args.folder, output_song), song_path) else: log.error('No audio streams available') if __name__ == '__main__': const.args = handle.get_arguments() internals.filter_path(const.args.folder) const.log = const.logzero.setup_logger(formatter=const.formatter, level=const.args.log_level) log = const.log log.debug('Python version: {}'.format(sys.version)) log.debug('Platform: {}'.format(platform.platform())) log.debug(pprint.pformat(const.args.__dict__)) try: if const.args.song: grab_single(raw_song=const.args.song) elif const.args.list: grab_list(text_file=const.args.list) elif const.args.playlist:
def test_grouped_arguments(tmpdir): sys.path[0] = str(tmpdir) with pytest.raises(SystemExit): handle.get_arguments(to_group=True, to_merge=True)
# -*- coding: UTF-8 -*- from core import const from core import handle import spotdl import os const.args = handle.get_arguments(to_group=False, raw_args='') const.args.folder = 'test' const.args.overwrite = 'skip' const.args.log_level = handle.logging.DEBUG spotdl.args = const.args spotdl.log = const.logzero.setup_logger(formatter=const.formatter, level=const.args.log_level) raw_song = "Tony's Videos VERY SHORT VIDEO 28.10.2016" def test_youtube_url(): expect_url = 'http://youtube.com/watch?v=qOOcy2-tmbk' url = spotdl.youtube_tools.generate_youtube_url(raw_song, meta_tags=None) assert url == expect_url def test_youtube_title(): global content global title expect_title = "Tony's Videos VERY SHORT VIDEO 28.10.2016" content = spotdl.youtube_tools.go_pafy(raw_song, meta_tags=None)
def main(): const.args = handle.get_arguments() if const.args.version: print('spotdl {version}'.format(version=__version__)) sys.exit() internals.filter_path(const.args.folder) const.log = const.logzero.setup_logger(formatter=const._formatter, level=const.args.log_level) global log log = const.log log.debug('Python version: {}'.format(sys.version)) log.debug('Platform: {}'.format(platform.platform())) log.debug(pprint.pformat(const.args.__dict__)) try: if const.args.song: download_single(raw_song=const.args.song) elif const.args.list: if os.path.isdir(const.args.list): files = [ f for f in os.listdir(const.args.list) if re.match(r'.*\.txt', f) and not re.match(r'requirements\.txt', f) ] shuffle(files) timeout = time.time() + int( os.getenv('MAX_DOWNLOAD_TIME_MIN', '300')) * 60 index = 0 while len(files) > 0: list_file = files[index] if time.time() > timeout: log.info( 'Total timeout! Stopping download of playlists.') break folder = os.path.join(const.args.folder, list_file).rstrip('.txt') internals.filter_path(folder) if download_list(os.path.join(const.args.list, list_file), folder): files.pop(index) else: index = index + 1 if index >= len(files): index = 0 else: download_list(text_file=const.args.list) elif const.args.playlist: spotify_tools.write_playlist(playlist_url=const.args.playlist) elif const.args.album: spotify_tools.write_album(album_url=const.args.album) elif const.args.username: if not os.path.exists('./playlists'): os.makedirs('./playlists') spotify_tools.write_user_playlist(username=const.args.username, path='./playlists') # actually we don't necessarily need this, but yeah... # explicit is better than implicit! sys.exit(0) except KeyboardInterrupt as e: log.exception(e) sys.exit(3)