Fix category downloading to embrace errors

pull/1/head
Michael Kuperfish Steinberg 2023-01-05 15:36:57 +02:00
rodzic b2713b3c4a
commit 8c5d5f866f
1 zmienionych plików z 15 dodań i 7 usunięć

Wyświetl plik

@ -6,6 +6,7 @@ from config import *
import base64
from time import sleep
from datetime import datetime
import random
client = SpotifyClient(sp_key=SP_KEY, sp_dc=SP_DC)
client.get_me()
@ -147,12 +148,19 @@ def full_download(download_dir: str, identifier: str, recursive_artist: bool=Fal
def download_all_categories_playlists(download_meta_data_only=True):
client.refresh_tokens()
os.makedirs(f'{DEFAULT_DOWNLOAD_DIRECTORY}/{PLAYLIST_METADATA_SUB_DIR}/', exist_ok=True)
console.log(f'Scraping playlists from all categories')
category_ids = scraper.get_categories_ids()
for category_id in category_ids:
random.shuffle(category_ids)
for category_index, category_id in enumerate(category_ids):
console.log(f'Scraping playlists from category {category_id} ({category_index + 1}/{len(category_ids)})')
playlist_ids = scraper.get_category_playlist_ids(category_id)
for playlist_id in playlist_ids:
playlist = scraper.get_playlist(playlist_id)
with open(f'{DEFAULT_DOWNLOAD_DIRECTORY}/{PLAYLIST_METADATA_SUB_DIR}/{playlist.spotify_id}.playlist', 'w') as f:
f.write(playlist.export())
if not download_meta_data_only:
full_download(f'{DEFAULT_DOWNLOAD_DIRECTORY}', identifier=playlist.href)
for playlist_index, playlist_id in enumerate(playlist_ids):
console.log(f'Scraping playlist data from playlist {playlist_id} ({playlist_index + 1}/{len(playlist_ids)}) from category {category_id} ({category_index + 1}/{len(category_ids)})')
try:
playlist = scraper.get_playlist(playlist_id)
with open(f'{DEFAULT_DOWNLOAD_DIRECTORY}/{PLAYLIST_METADATA_SUB_DIR}/{playlist.spotify_id}.playlist', 'w') as f:
f.write(playlist.export())
if not download_meta_data_only:
full_download(f'{DEFAULT_DOWNLOAD_DIRECTORY}', identifier=playlist.href)
except Exception as ex:
console.error(f'Scraping categories exception: {ex}')