def download(user, dl_type, name): """ Download user items of dl_type (ie. all, playlists, liked, commented, etc.) """ username = user['username'] user_id = user['id'] logger.info('Retrieving all {0} of user {1}...'.format(name, username)) dl_url = url[dl_type].format(user_id) logger.debug(dl_url) resources = client.get_collection(dl_url, token) del resources[:offset - 1] logger.debug(resources) total = len(resources) logger.info('Retrieved {0} {1}'.format(total, name)) for counter, item in enumerate(resources, offset): try: logger.debug(item) logger.info('{0} n°{1} of {2}'.format(name.capitalize(), counter, total)) if dl_type == 'all': item_name = item['type'].split('-')[0] # remove the '-repost' uri = item[item_name]['uri'] parse_url(uri) elif dl_type == 'playlists': download_playlist(item) elif dl_type == 'playlists-liked': parse_url(item['playlist']['uri']) elif dl_type == 'commented': download_track(item) else: download_track(item) except Exception as e: logger.exception(e) logger.info('Downloaded all {0} {1} of user {2}!'.format( total, name, username))
def download(user, dl_type, name): """ Download all items of a user """ username = user['username'] user_id = user['id'] logger.info('Retrieving all the {0} of user {1}...'.format(name, username)) dl_url = url[dl_type].format(user_id, offset) resources = client.get_collection(dl_url) total = len(resources) logger.info('Retrieved {0} {1}'.format(total, name)) for counter, item in enumerate(resources, 1): try: logger.debug(item) logger.info('{0} n°{1} of {2}'.format(name.capitalize(), counter + offset, total)) if name == 'tracks and reposts': item_name = '' if item['type'] == 'track-repost': item_name = 'track' else: item_name = item['type'] uri = item[item_name]['uri'] parse_url(uri) elif name == 'playlists': download_playlist(item) else: download_track(item) except Exception as e: logger.exception(e) logger.info('Downloaded all {0} {1} of user {2}!'.format( total, name, username))
def download(user, dl_type, name): """ Download all items of a user """ username = user['username'] user_id = user['id'] logger.info( 'Retrieving all {0} of user {1}...'.format(name, username) ) dl_url = url[dl_type].format(user_id, offset) logger.debug(dl_url) ressources = client.get_collection(dl_url, token) logger.debug(ressources) total = len(ressources) logger.info('Retrieved {0} {1}'.format(total, name)) for counter, item in enumerate(ressources, 1): try: logger.debug(item) logger.info('{0} n°{1} of {2}'.format( name.capitalize(), counter + offset, total) ) if dl_type == 'all': item_name = item['type'].split('-')[0] # remove the '-repost' uri = item[item_name]['uri'] parse_url(uri) elif dl_type == 'playlists': download_playlist(item) elif dl_type == 'playlists-liked': parse_url(item['playlist']['uri']) elif dl_type == 'commented': item=get_track_info(item['track_id']) download_track(item) else: download_track(item) except Exception as e: logger.exception(e) logger.info('Downloaded all {0} {1} of user {2}!'.format( total, name, username) )
def download(user, dl_type, name): """ Download all items of a user """ username = user['username'] user_id = user['id'] logger.info( 'Retrieving all the {0} of user {1}...'.format(name, username) ) dl_url = url[dl_type].format(user_id, offset) resources = client.get_collection(dl_url) total = len(resources) logger.info('Retrieved {0} {1}'.format(total, name)) for counter, item in enumerate(resources, 1): try: logger.debug(item) logger.info('{0} n°{1} of {2}'.format( name.capitalize(), counter + offset, total) ) if name == 'tracks and reposts': item_name = '' if item['type'] == 'track-repost': item_name = 'track' else: item_name = item['type'] uri = item[item_name]['uri'] parse_url(uri) elif name == 'playlists': download_playlist(item) else: download_track(item) except Exception as e: logger.exception(e) logger.info('Downloaded all {0} {1} of user {2}!'.format( total, name, username) )