further analisys

This commit is contained in:
agres
2025-05-05 16:16:24 +02:00
parent acb7717d22
commit fd341c284a
10 changed files with 330550 additions and 64904 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
-4
View File
@@ -26,7 +26,3 @@ def get_spotify_preview_url(spotify_track_id: str) -> Optional[str]:
except Exception as e: except Exception as e:
print(f"Failed to fetch Spotify preview URL: {e}") print(f"Failed to fetch Spotify preview URL: {e}")
return None return None
# example usage:
preview_url = get_spotify_preview_url('1301WleyT98MSxVHPZCA6M')
+391
View File
@@ -0,0 +1,391 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 7814.41track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 8865.11track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 8410.16track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 10286.20track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 6751.92track/s]\n",
"Downloading previews: 100%|██████████| 99/99 [00:00<00:00, 7016.85track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 9608.71track/s]\n",
"Downloading previews: 100%|██████████| 99/99 [00:00<00:00, 569.98track/s]\n",
"Downloading previews: 100%|██████████| 99/99 [00:00<00:00, 8934.23track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 3487.43track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:00<00:00, 8381.08track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 3057.72track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 6150.47track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 6555.71track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 2342.34track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 9073.67track/s]\n",
"Downloading previews: 100%|██████████| 93/93 [00:00<00:00, 6341.27track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 4801.47track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:00<00:00, 4224.31track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:00<00:00, 7571.09track/s]\n",
"Downloading previews: 100%|██████████| 91/91 [00:00<00:00, 6534.41track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 7016.58track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 7011.93track/s]\n",
"Downloading previews: 100%|██████████| 92/92 [00:00<00:00, 7224.25track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 5970.09track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 1830.87track/s]\n",
"Downloading previews: 100%|██████████| 99/99 [00:00<00:00, 7771.45track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 3839.22track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 8010.83track/s]\n",
"Downloading previews: 100%|██████████| 7/7 [00:00<00:00, 1725.85track/s]\n",
"Downloading previews: 100%|██████████| 80/80 [00:00<00:00, 3127.45track/s]\n",
"Downloading previews: 100%|██████████| 93/93 [00:00<00:00, 5919.12track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 2211.42track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 5711.20track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:00<00:00, 5389.72track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 5007.79track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 5448.83track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 1677.91track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 5254.51track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 5087.50track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:00<00:00, 6186.85track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 1513.61track/s]\n",
"Downloading previews: 100%|██████████| 99/99 [00:00<00:00, 6105.52track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:00<00:00, 4209.85track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 1611.84track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 127.48track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 200.62track/s]\n",
"Downloading previews: 100%|██████████| 92/92 [00:00<00:00, 5717.10track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 3484.29track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 177.04track/s]\n",
"Downloading previews: 100%|██████████| 99/99 [00:00<00:00, 5664.96track/s]\n",
"Downloading previews: 100%|██████████| 93/93 [00:00<00:00, 239.08track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 223.04track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 5842.92track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 7040.71track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 7355.77track/s]\n",
"Downloading previews: 100%|██████████| 93/93 [00:00<00:00, 292.89track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 8041.64track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:00<00:00, 420.54track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 6490.87track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:00<00:00, 5549.89track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:00<00:00, 5031.36track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 1444.37track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 5870.31track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 4974.82track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 4823.21track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 6310.05track/s]\n",
"Downloading previews: 100%|██████████| 196/196 [00:00<00:00, 312.44track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 5850.47track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 4904.72track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:00<00:00, 5343.90track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:00<00:00, 4764.65track/s]\n",
"Downloading previews: 100%|██████████| 93/93 [00:00<00:00, 4891.16track/s]\n",
"Downloading previews: 100%|██████████| 93/93 [00:00<00:00, 280.38track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 4945.14track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 4609.60track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 1155.63track/s]\n",
"Downloading previews: 100%|██████████| 92/92 [00:00<00:00, 3454.36track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 4191.60track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 4414.67track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 4393.90track/s]\n",
"Downloading previews: 100%|██████████| 92/92 [00:00<00:00, 2788.99track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 6180.40track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 260.50track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 4974.38track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 204.43track/s]\n",
"Downloading previews: 100%|██████████| 189/189 [00:00<00:00, 433.69track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 4620.28track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 5229.06track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:00<00:00, 6571.83track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 252.47track/s]\n",
"Downloading previews: 100%|██████████| 99/99 [00:00<00:00, 7138.69track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 4936.31track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 5408.81track/s]\n",
"Downloading previews: 100%|██████████| 93/93 [00:00<00:00, 6418.59track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 6733.21track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 6277.22track/s]\n",
"Downloading previews: 100%|██████████| 99/99 [00:00<00:00, 168.85track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 5975.06track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 7002.79track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 6256.22track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 6033.96track/s]\n",
"Downloading previews: 100%|██████████| 92/92 [00:00<00:00, 283.78track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 6277.83track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 5573.59track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:00<00:00, 6510.58track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 6384.23track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 6124.12track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 6541.53track/s]\n",
"Downloading previews: 100%|██████████| 92/92 [00:00<00:00, 857.85track/s]\n",
"Downloading previews: 100%|██████████| 190/190 [00:00<00:00, 375.59track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 10254.22track/s]\n",
"Downloading previews: 100%|██████████| 99/99 [00:00<00:00, 6399.47track/s]\n",
"Downloading previews: 100%|██████████| 93/93 [00:00<00:00, 6457.48track/s]\n",
"Downloading previews: 100%|██████████| 93/93 [00:00<00:00, 237.51track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 6714.17track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 287.82track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 6351.42track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:00<00:00, 7704.99track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:00<00:00, 449.76track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 6541.76track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:00<00:00, 7323.53track/s]\n",
"Downloading previews: 100%|██████████| 99/99 [00:00<00:00, 465.08track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:15<00:00, 6.16track/s] \n",
"Downloading previews: 100%|██████████| 97/97 [00:26<00:00, 3.60track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:25<00:00, 3.85track/s]\n",
"Downloading previews: 100%|██████████| 191/191 [00:57<00:00, 3.34track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:27<00:00, 3.49track/s]\n",
"Downloading previews: 100%|██████████| 194/194 [00:53<00:00, 3.63track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:27<00:00, 3.58track/s]\n",
"Downloading previews: 100%|██████████| 187/187 [00:55<00:00, 3.35track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:29<00:00, 3.19track/s]\n",
"Downloading previews: 100%|██████████| 196/196 [00:57<00:00, 3.41track/s]\n",
"Downloading previews: 100%|██████████| 92/92 [00:25<00:00, 3.63track/s]\n",
"Downloading previews: 100%|██████████| 197/197 [00:52<00:00, 3.75track/s]\n",
"Downloading previews: 100%|██████████| 190/190 [00:51<00:00, 3.71track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:26<00:00, 3.69track/s]\n",
"Downloading previews: 100%|██████████| 194/194 [00:55<00:00, 3.50track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:28<00:00, 3.46track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:25<00:00, 3.69track/s]\n",
"Downloading previews: 100%|██████████| 92/92 [00:25<00:00, 3.65track/s]\n",
"Downloading previews: 100%|██████████| 193/193 [00:55<00:00, 3.46track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:26<00:00, 3.59track/s]\n",
"Downloading previews: 100%|██████████| 190/190 [00:50<00:00, 3.74track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:25<00:00, 3.86track/s]\n",
"Downloading previews: 100%|██████████| 191/191 [00:52<00:00, 3.63track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:28<00:00, 3.40track/s]\n",
"Downloading previews: 100%|██████████| 195/195 [00:55<00:00, 3.54track/s]\n",
"Downloading previews: 100%|██████████| 93/93 [00:27<00:00, 3.44track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:27<00:00, 3.57track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:34<00:00, 2.81track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:27<00:00, 3.55track/s]\n",
"Downloading previews: 100%|██████████| 92/92 [00:27<00:00, 3.38track/s]\n",
"Downloading previews: 100%|██████████| 190/190 [00:52<00:00, 3.64track/s]\n",
"Downloading previews: 100%|██████████| 99/99 [00:32<00:00, 3.01track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:28<00:00, 3.36track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:24<00:00, 3.92track/s]\n",
"Downloading previews: 100%|██████████| 92/92 [00:27<00:00, 3.40track/s]\n",
"Downloading previews: 100%|██████████| 188/188 [00:49<00:00, 3.79track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:26<00:00, 3.53track/s]\n",
"Downloading previews: 100%|██████████| 191/191 [00:55<00:00, 3.45track/s]\n",
"Downloading previews: 100%|██████████| 92/92 [00:27<00:00, 3.30track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:29<00:00, 3.23track/s]\n",
"Downloading previews: 100%|██████████| 90/90 [00:22<00:00, 3.93track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:25<00:00, 3.63track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:26<00:00, 3.60track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:26<00:00, 3.72track/s]\n",
"Downloading previews: 100%|██████████| 90/90 [00:24<00:00, 3.66track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:28<00:00, 3.38track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:27<00:00, 3.59track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:25<00:00, 3.74track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:25<00:00, 3.80track/s]\n",
"Downloading previews: 100%|██████████| 93/93 [00:25<00:00, 3.69track/s]\n",
"Downloading previews: 100%|██████████| 99/99 [00:27<00:00, 3.62track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:25<00:00, 3.71track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:26<00:00, 3.55track/s]\n",
"Downloading previews: 100%|██████████| 193/193 [00:50<00:00, 3.83track/s]\n",
"Downloading previews: 100%|██████████| 197/197 [00:53<00:00, 3.67track/s]\n",
"Downloading previews: 100%|██████████| 185/185 [00:46<00:00, 4.01track/s]\n",
"Downloading previews: 100%|██████████| 195/195 [00:48<00:00, 4.03track/s]\n",
"Downloading previews: 100%|██████████| 190/190 [00:51<00:00, 3.68track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:26<00:00, 3.64track/s]\n",
"Downloading previews: 100%|██████████| 197/197 [00:52<00:00, 3.72track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:24<00:00, 3.87track/s]\n",
"Downloading previews: 100%|██████████| 195/195 [01:04<00:00, 3.01track/s]\n",
"Downloading previews: 100%|██████████| 193/193 [00:54<00:00, 3.57track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:28<00:00, 3.35track/s]\n",
"Downloading previews: 100%|██████████| 194/194 [00:55<00:00, 3.47track/s]\n",
"Downloading previews: 100%|██████████| 192/192 [00:59<00:00, 3.23track/s]\n",
"Downloading previews: 100%|██████████| 92/92 [00:27<00:00, 3.36track/s]\n",
"Downloading previews: 100%|██████████| 190/190 [00:51<00:00, 3.67track/s]\n",
"Downloading previews: 100%|██████████| 189/189 [01:02<00:00, 3.01track/s]\n",
"Downloading previews: 100%|██████████| 99/99 [00:28<00:00, 3.51track/s]\n",
"Downloading previews: 100%|██████████| 188/188 [00:55<00:00, 3.40track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:29<00:00, 3.19track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:38<00:00, 2.45track/s]\n",
"Downloading previews: 100%|██████████| 194/194 [00:55<00:00, 3.50track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:30<00:00, 3.13track/s]\n",
"Downloading previews: 100%|██████████| 93/93 [00:27<00:00, 3.35track/s]\n",
"Downloading previews: 100%|██████████| 186/186 [00:56<00:00, 3.31track/s]\n",
"Downloading previews: 100%|██████████| 190/190 [00:54<00:00, 3.52track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:40<00:00, 2.39track/s]\n",
"Downloading previews: 100%|██████████| 93/93 [00:56<00:00, 1.64track/s]\n",
"Downloading previews: 100%|██████████| 193/193 [00:54<00:00, 3.57track/s]\n",
"Downloading previews: 100%|██████████| 195/195 [01:04<00:00, 3.03track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:32<00:00, 2.93track/s]\n",
"Downloading previews: 100%|██████████| 192/192 [01:05<00:00, 2.92track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:31<00:00, 3.12track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:34<00:00, 2.82track/s]\n",
"Downloading previews: 100%|██████████| 190/190 [00:55<00:00, 3.40track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:26<00:00, 3.49track/s]\n",
"Downloading previews: 100%|██████████| 193/193 [00:53<00:00, 3.58track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:31<00:00, 3.03track/s]\n",
"Downloading previews: 100%|██████████| 99/99 [00:28<00:00, 3.42track/s]\n",
"Downloading previews: 100%|██████████| 184/184 [00:50<00:00, 3.61track/s]\n",
"Downloading previews: 100%|██████████| 99/99 [00:31<00:00, 3.15track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:27<00:00, 3.42track/s]\n",
"Downloading previews: 100%|██████████| 92/92 [00:27<00:00, 3.33track/s]\n",
"Downloading previews: 100%|██████████| 189/189 [00:52<00:00, 3.60track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:27<00:00, 3.54track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:25<00:00, 3.72track/s]\n",
"Downloading previews: 100%|██████████| 91/91 [00:26<00:00, 3.47track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:27<00:00, 3.50track/s]\n",
"Downloading previews: 100%|██████████| 88/88 [00:23<00:00, 3.78track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:29<00:00, 3.35track/s]\n",
"Downloading previews: 100%|██████████| 186/186 [00:53<00:00, 3.46track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:29<00:00, 3.22track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:30<00:00, 3.13track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:32<00:00, 2.91track/s]\n",
"Downloading previews: 100%|██████████| 186/186 [00:56<00:00, 3.27track/s]\n",
"Downloading previews: 100%|██████████| 92/92 [00:27<00:00, 3.34track/s]\n",
"Downloading previews: 100%|██████████| 92/92 [00:24<00:00, 3.72track/s]\n",
"Downloading previews: 100%|██████████| 93/93 [00:26<00:00, 3.56track/s]\n",
"Downloading previews: 100%|██████████| 186/186 [00:53<00:00, 3.46track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:29<00:00, 3.18track/s]\n",
"Downloading previews: 100%|██████████| 93/93 [00:27<00:00, 3.43track/s]\n",
"Downloading previews: 100%|██████████| 190/190 [01:01<00:00, 3.08track/s]\n",
"Downloading previews: 100%|██████████| 93/93 [00:28<00:00, 3.29track/s]\n",
"Downloading previews: 100%|██████████| 197/197 [00:59<00:00, 3.31track/s]\n",
"Downloading previews: 100%|██████████| 192/192 [00:59<00:00, 3.22track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:37<00:00, 2.59track/s]\n",
"Downloading previews: 100%|██████████| 192/192 [00:55<00:00, 3.48track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:26<00:00, 3.62track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:27<00:00, 3.48track/s]\n",
"Downloading previews: 100%|██████████| 188/188 [00:54<00:00, 3.44track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:28<00:00, 3.39track/s]\n",
"Downloading previews: 100%|██████████| 92/92 [00:28<00:00, 3.22track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:29<00:00, 3.30track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:27<00:00, 3.48track/s]\n",
"Downloading previews: 100%|██████████| 97/97 [00:29<00:00, 3.34track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:26<00:00, 3.66track/s]\n",
"Downloading previews: 100%|██████████| 193/193 [00:55<00:00, 3.49track/s]\n",
"Downloading previews: 100%|██████████| 193/193 [00:53<00:00, 3.62track/s]\n",
"Downloading previews: 100%|██████████| 94/94 [00:27<00:00, 3.41track/s]\n",
"Downloading previews: 100%|██████████| 188/188 [00:51<00:00, 3.62track/s]\n",
"Downloading previews: 100%|██████████| 191/191 [00:56<00:00, 3.41track/s]\n",
"Downloading previews: 100%|██████████| 193/193 [00:54<00:00, 3.52track/s]\n",
"Downloading previews: 100%|██████████| 191/191 [00:57<00:00, 3.30track/s]\n",
"Downloading previews: 100%|██████████| 196/196 [00:57<00:00, 3.43track/s]\n",
"Downloading previews: 100%|██████████| 95/95 [00:25<00:00, 3.67track/s]\n",
"Downloading previews: 100%|██████████| 98/98 [00:34<00:00, 2.82track/s]\n",
"Downloading previews: 100%|██████████| 188/188 [00:56<00:00, 3.35track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:28<00:00, 3.34track/s]\n",
"Downloading previews: 100%|██████████| 96/96 [00:29<00:00, 3.22track/s]\n",
"Downloading previews: 100%|██████████| 191/191 [00:58<00:00, 3.29track/s]\n",
"Downloading previews: 100%|██████████| 82/82 [00:25<00:00, 3.27track/s]\n",
"Downloading previews: 100%|██████████| 5/5 [00:00<00:00, 649.53track/s]\n",
"Downloading previews: 100%|██████████| 16/16 [00:00<00:00, 2081.48track/s]\n",
"Downloading previews: 100%|██████████| 4/4 [00:00<00:00, 1143.17track/s]\n",
"Downloading previews: 100%|██████████| 16/16 [00:00<00:00, 2154.59track/s]\n",
"Downloading previews: 100%|██████████| 49/49 [00:10<00:00, 4.51track/s]\n",
"Downloading previews: 100%|██████████| 36/36 [00:10<00:00, 3.49track/s]\n",
"Downloading previews: 100%|██████████| 19/19 [00:06<00:00, 2.76track/s]\n",
"Downloading previews: 100%|██████████| 24/24 [00:07<00:00, 3.36track/s]\n",
"Downloading previews: 100%|██████████| 20/20 [00:06<00:00, 2.99track/s]\n",
"Downloading previews: 100%|██████████| 33/33 [00:09<00:00, 3.33track/s]\n",
"Downloading previews: 100%|██████████| 30/30 [00:08<00:00, 3.72track/s]\n",
"Downloading previews: 100%|██████████| 10/10 [00:02<00:00, 3.87track/s]\n",
"Downloading previews: 100%|██████████| 2/2 [00:00<00:00, 439.26track/s]\n",
"Downloading previews: 100%|██████████| 1/1 [00:00<00:00, 5.52track/s]\n"
]
},
{
"ename": "KeyboardInterrupt",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001b[31m---------------------------------------------------------------------------\u001b[39m",
"\u001b[31mKeyboardInterrupt\u001b[39m Traceback (most recent call last)",
"\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 29\u001b[39m\n\u001b[32m 26\u001b[39m df_new = df[~df[\u001b[33m'\u001b[39m\u001b[33mtrack_id\u001b[39m\u001b[33m'\u001b[39m].isin(processed)].copy()\n\u001b[32m 27\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m df_new.empty:\n\u001b[32m 28\u001b[39m \u001b[38;5;66;03m# nothing new → wait and retry\u001b[39;00m\n\u001b[32m---> \u001b[39m\u001b[32m29\u001b[39m time.sleep(SLEEP_INTERVAL)\n\u001b[32m 30\u001b[39m \u001b[38;5;28;01mcontinue\u001b[39;00m\n\u001b[32m 32\u001b[39m \u001b[38;5;66;03m# 3) Download each new preview with a progress bar\u001b[39;00m\n",
"\u001b[31mKeyboardInterrupt\u001b[39m: "
]
}
],
"source": [
"import os\n",
"import time\n",
"import requests\n",
"import pandas as pd\n",
"from tqdm import tqdm\n",
"\n",
"CSV_PATH = './track_genre_balanced_url.csv'\n",
"DOWNLOAD_DIR = 'audio_previews'\n",
"SLEEP_INTERVAL = 60 # seconds to wait between checks\n",
"\n",
"os.makedirs(DOWNLOAD_DIR, exist_ok=True)\n",
"\n",
"# Keep track of which track_ids we've already attempted\n",
"processed = set()\n",
"\n",
"while True:\n",
" # 1) Load current CSV\n",
" try:\n",
" df = pd.read_csv(CSV_PATH)\n",
" except FileNotFoundError:\n",
" print(f\"{CSV_PATH} not found, waiting...\")\n",
" time.sleep(SLEEP_INTERVAL)\n",
" continue\n",
"\n",
" # 2) Identify new tracks we haven't processed yet\n",
" df_new = df[~df['track_id'].isin(processed)].copy()\n",
" if df_new.empty:\n",
" # nothing new → wait and retry\n",
" time.sleep(SLEEP_INTERVAL)\n",
" continue\n",
"\n",
" # 3) Download each new preview with a progress bar\n",
" for _, row in tqdm(df_new.iterrows(),\n",
" total=len(df_new),\n",
" desc=\"Downloading previews\",\n",
" unit=\"track\"):\n",
" track_id = row['track_id']\n",
" preview_url = row['preview']\n",
" out_path = os.path.join(DOWNLOAD_DIR, f\"{track_id}.mp3\")\n",
"\n",
" # mark as processed so we don't retry on crashes\n",
" processed.add(track_id)\n",
"\n",
" # skip if file already exists\n",
" if os.path.exists(out_path):\n",
" continue\n",
"\n",
" # attempt download\n",
" try:\n",
" resp = requests.get(preview_url, timeout=30)\n",
" if resp.status_code == 200:\n",
" with open(out_path, 'wb') as f:\n",
" f.write(resp.content)\n",
" else:\n",
" print(f\"HTTP {resp.status_code} for {track_id}\")\n",
" except Exception as e:\n",
" print(f\"Error downloading {track_id}: {e}\")\n",
"\n",
" # 4) Pause before next check\n",
" time.sleep(SLEEP_INTERVAL)\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
File diff suppressed because it is too large Load Diff
+297
View File
@@ -0,0 +1,297 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Read out Data from Kaggle Dataset, get preview URL-s and save to file\n",
"\n",
"## this should be run only once"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Fetching previews: 6%|▋ | 76/1183 [00:35<33:39, 1.82s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Failed to fetch Spotify preview URL: 504 Server Error: Gateway Timeout for url: https://open.spotify.com/embed/track/64ffsubBonytxZc5fQJhdO\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Fetching previews: 9%|▊ | 102/1183 [00:55<34:18, 1.90s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Failed to fetch Spotify preview URL: 504 Server Error: Gateway Timeout for url: https://open.spotify.com/embed/track/2Iu5wxKFiEEQDQK1Pldsis\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Fetching previews: 9%|▉ | 111/1183 [01:03<33:10, 1.86s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Failed to fetch Spotify preview URL: 504 Server Error: Gateway Timeout for url: https://open.spotify.com/embed/track/6syvS9gZzjB8b9DdKVhAJH\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Fetching previews: 15%|█▌ | 180/1183 [01:54<53:30, 3.20s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Failed to fetch Spotify preview URL: 504 Server Error: Gateway Timeout for url: https://open.spotify.com/embed/track/2qrVR11O44iJ0DVTNCExjA\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Fetching previews: 19%|█▉ | 225/1183 [02:25<29:37, 1.86s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Failed to fetch Spotify preview URL: 504 Server Error: Gateway Timeout for url: https://open.spotify.com/embed/track/3njPW0vttbjt5j1Elt6sJI\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Fetching previews: 32%|███▏ | 381/1183 [03:26<23:39, 1.77s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Failed to fetch Spotify preview URL: 504 Server Error: Gateway Timeout for url: https://open.spotify.com/embed/track/3T7zNYia3nk9d8uXhO9Xud\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Fetching previews: 53%|█████▎ | 630/1183 [05:23<16:28, 1.79s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Failed to fetch Spotify preview URL: 504 Server Error: Gateway Timeout for url: https://open.spotify.com/embed/track/41Sfs0E8hr8w2BvzUtof4O\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Fetching previews: 54%|█████▎ | 633/1183 [05:29<20:57, 2.29s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Failed to fetch Spotify preview URL: 504 Server Error: Gateway Timeout for url: https://open.spotify.com/embed/track/3H9aA6IO5gfHW72m8YU8Iv\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Fetching previews: 57%|█████▋ | 675/1183 [05:56<15:49, 1.87s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Failed to fetch Spotify preview URL: 504 Server Error: Gateway Timeout for url: https://open.spotify.com/embed/track/0lvHnw9Exl8jLV3zuRsksJ\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Fetching previews: 67%|██████▋ | 792/1183 [07:06<12:08, 1.86s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Failed to fetch Spotify preview URL: 504 Server Error: Gateway Timeout for url: https://open.spotify.com/embed/track/17sSDGIRIkB0jOKb2cBURf\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Fetching previews: 77%|███████▋ | 911/1183 [08:03<09:15, 2.04s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Failed to fetch Spotify preview URL: 504 Server Error: Gateway Timeout for url: https://open.spotify.com/embed/track/5RcZ5jbBgKDdM6BuoSeh8P\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Fetching previews: 77%|███████▋ | 912/1183 [08:08<13:32, 3.00s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Failed to fetch Spotify preview URL: 504 Server Error: Gateway Timeout for url: https://open.spotify.com/embed/track/0YQrHOpi219lZA8SDly4iG\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Fetching previews: 90%|█████████ | 1069/1183 [09:31<03:31, 1.85s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Failed to fetch Spotify preview URL: 504 Server Error: Gateway Timeout for url: https://open.spotify.com/embed/track/2iql0ydkQX1hZ375EyRFFF\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Fetching previews: 100%|██████████| 1183/1183 [10:19<00:00, 1.91it/s]\n"
]
}
],
"source": [
"import pandas as pd\n",
"import os\n",
"from spotify_preview import get_spotify_preview_url\n",
"from tqdm import tqdm\n",
"\n",
"# --- 0) Load & dedupe your balanced track/genre file ---\n",
"df = pd.read_csv('track_genres_balanced.csv')\n",
"df = df.drop_duplicates(subset=['track_id'])\n",
"df = df.dropna(subset=['genre'])\n",
"\n",
"# --- 1) Prep output CSV (header only once) ---\n",
"#output_csv = 'track_genre_balanced_url.csv'\n",
"#pd.DataFrame(columns=['track_id','genre','preview']).to_csv(output_csv, index=False)\n",
"#output_csv = pd.read_csv('track_genre_balanced_url.csv')\n",
"\n",
"output_csv = 'track_genre_balanced_url.csv'\n",
"\n",
"if os.path.exists(output_csv):\n",
" # load already-fetched track_ids and drop them from df\n",
" done = pd.read_csv(output_csv, usecols=['track_id'])\n",
" processed_ids = set(done['track_id'].astype(str))\n",
" df = df[~df['track_id'].astype(str).isin(processed_ids)]\n",
" write_header = False\n",
"else:\n",
" # new file → write header\n",
" pd.DataFrame(columns=['track_id','genre','preview']) \\\n",
" .to_csv(output_csv, index=False)\n",
" write_header = False # header is already there\n",
"\n",
"# --- 2) Parameters ---\n",
"BATCH_SIZE = 100 # how many tracks to process per “minibatch”\n",
"PAUSE = 0.1 # if you want a small sleep between API calls\n",
"\n",
"# --- 3) Loop with a single progress bar over all tracks ---\n",
"with tqdm(total=len(df), desc=\"Fetching previews\") as pbar:\n",
" for start in range(0, len(df), BATCH_SIZE):\n",
" chunk = df.iloc[start:start + BATCH_SIZE]\n",
" rows = []\n",
"\n",
" # 4) Pertrack lookup\n",
" for _, row in chunk.iterrows():\n",
" track_id = row['track_id']\n",
" genre = row['genre']\n",
"\n",
" preview = get_spotify_preview_url(track_id)\n",
" if preview:\n",
" rows.append({\n",
" 'track_id': track_id,\n",
" 'genre': genre,\n",
" 'preview': preview\n",
" })\n",
" # else: silently skip or print an error if you prefer\n",
"\n",
" pbar.update(1)\n",
" if PAUSE:\n",
" import time; time.sleep(PAUSE)\n",
"\n",
" # 5) Append this batchs hits to disk\n",
" if rows:\n",
" pd.DataFrame(rows).to_csv(\n",
" output_csv,\n",
" mode='a',\n",
" header=False,\n",
" index=False\n",
" )\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}