예제 #1
0
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)
예제 #2
0
파일: main.py 프로젝트: hrishi-dev/Music
    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")
예제 #3
0
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()
예제 #4
0
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)
예제 #5
0
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]}'
예제 #6
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
예제 #7
0
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)
예제 #8
0
    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()
예제 #9
0
            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'])