def main(): try: argument_handler = get_arguments() except ArgumentError as e: logger = set_logger(logging.INFO) logger.info(e.args[0]) sys.exit(spotdl.command_line.exitcodes.ARGUMENT_ERROR) logging_level = argument_handler.get_logging_level() logger = set_logger(logging_level) try: spotdl_handler = Spotdl(argument_handler) except ArgumentError as e: argument_handler.parser.error( e.args[0], exitcode=spotdl.command_line.exitcodes.ARGUMENT_ERROR ) try: exitcode = spotdl_handler.match_arguments() except KeyboardInterrupt as e: print("", file=sys.stderr) logger.exception(e) sys.exit(spotdl.command_line.exitcodes.KEYBOARD_INTERRUPT) else: sys.exit(exitcode)
def download(self): self.song_name = self.ids.SongName.text args = { "no_encode": False, } spotdl_handler = Spotdl(args) spotdl_handler.download_track(self.song_name) self.manager.transition = FadeTransition(duration=1.2) self.manager.current = "Downloader" toast("Download complete")
async def spotify_dl(client, message): await message.edit("`Searching Song...`") if len(message.text.split(" ", 1)) >= 2: songname = message.text.split(" ", 1)[1] spotdl_handler = Spotdl() filename = spotdl_handler.download_track(songname) rply = await message.edit("`Uploading Song...`") await message.reply_document(document=filename, parse_mode="html", disable_notification=True, reply_to_message_id=message.message_id) subprocess.Popen("rm -rf *.mp3", shell=True) await rply.delete()
def main(): try: argument_handler = get_arguments() except ArgumentError as e: logger = set_logger(logging.INFO) logger.info(e.args[0]) sys.exit(5) logging_level = argument_handler.get_logging_level() logger = set_logger(logging_level) try: spotdl = Spotdl(argument_handler) except ArgumentError as e: argument_handler.parser.error(e.args[0]) try: spotdl.match_arguments() except KeyboardInterrupt as e: print("", file=sys.stderr) logger.exception(e) sys.exit(2)
def download(song, user): args = { "song": [song,], 'output_file': 'music/' + user + '/{artist} - {track-name}.{output-ext}' } with Spotdl(args) as spotdl_handler: spotdl_handler.match_arguments() files = os.listdir(f'music/{user}') return f'music/{user}/{files[0]}'
def download_audio(self, song, user): path = f'music/{user}/' args = { "song": [song], 'output_file': f'music/{user}/' + '{artist} - {track-name}.{output-ext}' } print(f'Downloading to {path}') with Spotdl(args) as spotdl_handler: spotdl_handler.match_arguments() return path
def main(): try: parser = arguments.get_arguments() except ArgumentError as e: logger.info(e.args[0]) sys.exit(spotdl.command_line.exitcodes.ARGUMENT_ERROR) else: args = parser.parse_args().__dict__ try: with Spotdl(args) as spotdl_handler: exitcode = spotdl_handler.match_arguments() except ArgumentError as e: parser.error(e.args[0], exitcode=spotdl.command_line.exitcodes.ARGUMENT_ERROR) except KeyboardInterrupt as e: print("", file=sys.stderr) logger.exception(e) sys.exit(spotdl.command_line.exitcodes.KEYBOARD_INTERRUPT) else: sys.exit(exitcode)
def __init__(self, directory=os.getcwd(), config_from_file=True, username=None, password=None, client_id=None, client_secret=None): self.directory = directory sp_args = { # 'output_file': '{track-id}.{output-ext}', # is set in SyncClass anyway with path 'overwrite': 'force' } if config_from_file: if self._load_config(): # config values overwrite default args sp_args = {**sp_args, **self.config['spotify']} # check if both keys exist if set(['username', 'password']).issubset( set(self.config['tonies'].keys())): tonie_user = self.config['tonies']['username'] tonie_password = self.config['tonies']['password'] # arguments from init call overwrite config if given if username is not None: tonie_user = username if password is not None: tonie_password = password if client_id is not None: sp_args['client_id'] = client_id if client_secret is not None: sp_args['client_secret'] = client_secret self.sp_handler = Spotdl(sp_args) self.sp_helpers = SpotifyHelpers() self.tonieAPI = TonieAPI(tonie_user, tonie_password) self.tonieAPI.update() self.sync_jobs = [] self._sync_running = False self._sync_service_running = False if config_from_file: self.set_syncs()
Press 2). Download Album by url Press 3). Download Playlist by url Press 4). Download Song by search Press 5). To display menu Press 6). Exit ''') Display() while(1): inp = int(input("Enter your choice: ")) if inp == 1: print("You pressed 1!") print("Spotify track link should look like this: https://open.spotify.com/track/<gibberish-code>") url = str(input("Enter your song url: ")) with Spotdl(args) as spotdl_handler: spotdl_handler.download_track(url) ch = str(input("Want to exit the program? Press[y/N]: ")) if ch == 'y' or ch == 'Y': break else: continue if inp == 2: print("You pressed 2!") print("Spotify track link should look like this: https://open.spotify.com/album/<gibberish-code>") url = str(input("Enter your album url: ")) with Spotdl() as spotdl_handler: spotify_tools = SpotifyHelpers() all_songs = spotify_tools.fetch_album(url) print(all_songs['name'] + ' - ' + all_songs['label'])