Update app.py
Browse files
app.py
CHANGED
@@ -6,6 +6,7 @@ import requests
|
|
6 |
from datetime import datetime, timedelta
|
7 |
import time
|
8 |
import asyncio
|
|
|
9 |
|
10 |
app = Flask(__name__)
|
11 |
ytmusic = YTMusic()
|
@@ -34,18 +35,27 @@ def searcht():
|
|
34 |
|
35 |
async def get_track_download_url(track_id: str) -> str:
|
36 |
apis = [
|
37 |
-
"
|
38 |
"https://cobalt-api.ayo.tf/",
|
39 |
-
"https://dwnld.nichind.dev"
|
40 |
-
"https://yt.edd1e.xyz/",
|
41 |
-
"https://cobalt-api.kwiatekmiki.com/"
|
42 |
]
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
|
44 |
for api_url in apis:
|
45 |
try:
|
46 |
logger.info(f"Attempting to get download URL from: {api_url}")
|
47 |
y_url = f"https://youtu.be/{track_id}"
|
48 |
-
response =
|
|
|
|
|
|
|
|
|
|
|
49 |
logger.info(f"Response status: {response.status_code}")
|
50 |
logger.info(f"Response content: {response.content}")
|
51 |
|
@@ -89,4 +99,4 @@ def get_song():
|
|
89 |
return jsonify(song_info)
|
90 |
|
91 |
if __name__ == '__main__':
|
92 |
-
app.run(host='0.0.0.0', port=7860)
|
|
|
6 |
from datetime import datetime, timedelta
|
7 |
import time
|
8 |
import asyncio
|
9 |
+
import cloudscraper
|
10 |
|
11 |
app = Flask(__name__)
|
12 |
ytmusic = YTMusic()
|
|
|
35 |
|
36 |
async def get_track_download_url(track_id: str) -> str:
|
37 |
apis = [
|
38 |
+
"https://cobalt-api.kwiatekmiki.com/",
|
39 |
"https://cobalt-api.ayo.tf/",
|
40 |
+
"https://dwnld.nichind.dev"
|
|
|
|
|
41 |
]
|
42 |
+
session = cloudscraper.create_scraper() # Requires cloudscraper package
|
43 |
+
headers = {
|
44 |
+
"Accept": "application/json",
|
45 |
+
"Content-Type": "application/json",
|
46 |
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
|
47 |
+
}
|
48 |
|
49 |
for api_url in apis:
|
50 |
try:
|
51 |
logger.info(f"Attempting to get download URL from: {api_url}")
|
52 |
y_url = f"https://youtu.be/{track_id}"
|
53 |
+
response = session.post(
|
54 |
+
api_url,
|
55 |
+
timeout=20,
|
56 |
+
json={"url": y_url, "audioFormat": "mp3", "downloadMode": "audio"},
|
57 |
+
headers=headers
|
58 |
+
)
|
59 |
logger.info(f"Response status: {response.status_code}")
|
60 |
logger.info(f"Response content: {response.content}")
|
61 |
|
|
|
99 |
return jsonify(song_info)
|
100 |
|
101 |
if __name__ == '__main__':
|
102 |
+
app.run(host='0.0.0.0', port=7860)
|