Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -1,8 +1,8 @@
|
|
|
|
1 |
from fastapi import FastAPI, HTTPException, Request
|
2 |
import requests
|
3 |
from bs4 import BeautifulSoup
|
4 |
import os
|
5 |
-
import base64
|
6 |
|
7 |
app = FastAPI()
|
8 |
|
@@ -35,18 +35,27 @@ def get_track(request: Request, track_id: str = None, track_url: str = None):
|
|
35 |
|
36 |
if track_url:
|
37 |
track_id = track_url.split("/")[-1]
|
38 |
-
|
|
|
39 |
response = requests.get(f"{SPOTIFY_API_URL}/tracks/{track_id}", headers=headers)
|
40 |
track_data = response.json()
|
41 |
-
|
|
|
42 |
download_res = respone.json()
|
43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
return {
|
|
|
45 |
"name": track_data["name"],
|
46 |
"album": track_data["album"]["name"],
|
47 |
"artist": track_data["artists"][0]["name"],
|
48 |
"release_date": track_data["album"]["release_date"],
|
49 |
"duration_ms": track_data["duration_ms"],
|
50 |
-
"url":
|
51 |
-
|
52 |
}
|
|
|
1 |
+
import base64
|
2 |
from fastapi import FastAPI, HTTPException, Request
|
3 |
import requests
|
4 |
from bs4 import BeautifulSoup
|
5 |
import os
|
|
|
6 |
|
7 |
app = FastAPI()
|
8 |
|
|
|
35 |
|
36 |
if track_url:
|
37 |
track_id = track_url.split("/")[-1]
|
38 |
+
|
39 |
+
# First request to get download URL
|
40 |
response = requests.get(f"{SPOTIFY_API_URL}/tracks/{track_id}", headers=headers)
|
41 |
track_data = response.json()
|
42 |
+
|
43 |
+
respone = requests.get(f"https://downspotifyapis.vercel.app/api/v2/track/{track_id}")
|
44 |
download_res = respone.json()
|
45 |
+
|
46 |
+
# If URL is not valid, send another request to second URL
|
47 |
+
url = download_res.get("url")
|
48 |
+
if not url:
|
49 |
+
respone = requests.get(f"https://downspotifyapis.vercel.app/api/v1/track/{track_id}")
|
50 |
+
download_res = respone.json()
|
51 |
+
url = download_res.get("url")
|
52 |
+
|
53 |
return {
|
54 |
+
"track_id": track_id,
|
55 |
"name": track_data["name"],
|
56 |
"album": track_data["album"]["name"],
|
57 |
"artist": track_data["artists"][0]["name"],
|
58 |
"release_date": track_data["album"]["release_date"],
|
59 |
"duration_ms": track_data["duration_ms"],
|
60 |
+
"url": url
|
|
|
61 |
}
|