Commit
·
9c0c806
1
Parent(s):
49ea85c
patch
Browse files
app.py
CHANGED
|
@@ -98,31 +98,31 @@ async def get_media_store_api():
|
|
| 98 |
|
| 99 |
@app.get("/api/get/music/{filename}")
|
| 100 |
async def get_media_api(request: Request, filename: str):
|
| 101 |
-
"""Endpoint to get the music file (audio or video) by
|
| 102 |
-
|
| 103 |
-
if not
|
| 104 |
-
raise HTTPException(status_code=400, detail="
|
| 105 |
|
| 106 |
-
if
|
| 107 |
-
cache_path = instance.MUSIC_STORE[
|
| 108 |
if os.path.exists(cache_path):
|
| 109 |
return await serve_media(cache_path, request)
|
| 110 |
|
| 111 |
-
media_path = instance.find_music_path(
|
| 112 |
|
| 113 |
if not media_path:
|
| 114 |
raise HTTPException(status_code=404, detail="Media not found")
|
| 115 |
|
| 116 |
cache_path = os.path.join(CACHE_DIR, media_path)
|
| 117 |
file_url = f"https://huggingface.co/{REPO}/resolve/main/{media_path}"
|
| 118 |
-
|
| 119 |
|
| 120 |
-
if
|
| 121 |
-
thread = Thread(target=instance.download_music, args=(file_url, TOKEN, cache_path,
|
| 122 |
-
instance.download_threads[
|
| 123 |
thread.start()
|
| 124 |
|
| 125 |
-
return JSONResponse({"status": "Download started", "music_id":
|
| 126 |
|
| 127 |
@app.get("/api/get/progress/{id}")
|
| 128 |
async def get_progress_api(id: str):
|
|
|
|
| 98 |
|
| 99 |
@app.get("/api/get/music/{filename}")
|
| 100 |
async def get_media_api(request: Request, filename: str):
|
| 101 |
+
"""Endpoint to get the music file (audio or video) by filename with support for range requests."""
|
| 102 |
+
filename = unquote(filename)
|
| 103 |
+
if not filename:
|
| 104 |
+
raise HTTPException(status_code=400, detail="filename parameter is required")
|
| 105 |
|
| 106 |
+
if filename in instance.MUSIC_STORE:
|
| 107 |
+
cache_path = instance.MUSIC_STORE[filename]
|
| 108 |
if os.path.exists(cache_path):
|
| 109 |
return await serve_media(cache_path, request)
|
| 110 |
|
| 111 |
+
media_path = instance.find_music_path(filename)
|
| 112 |
|
| 113 |
if not media_path:
|
| 114 |
raise HTTPException(status_code=404, detail="Media not found")
|
| 115 |
|
| 116 |
cache_path = os.path.join(CACHE_DIR, media_path)
|
| 117 |
file_url = f"https://huggingface.co/{REPO}/resolve/main/{media_path}"
|
| 118 |
+
music_id = instance.get_music_id(filename)
|
| 119 |
|
| 120 |
+
if music_id not in instance.download_threads or not instance.download_threads[music_id].is_alive():
|
| 121 |
+
thread = Thread(target=instance.download_music, args=(file_url, TOKEN, cache_path, music_id, filename))
|
| 122 |
+
instance.download_threads[music_id] = thread
|
| 123 |
thread.start()
|
| 124 |
|
| 125 |
+
return JSONResponse({"status": "Download started", "music_id": music_id})
|
| 126 |
|
| 127 |
@app.get("/api/get/progress/{id}")
|
| 128 |
async def get_progress_api(id: str):
|