Fix YouTube Music import (run sync ytmusicapi in thread), remove all Spotify UI
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
import asyncio
|
||||
from functools import partial
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from pydantic import BaseModel
|
||||
from sqlalchemy import select
|
||||
@@ -50,9 +53,12 @@ async def import_youtube_playlist(
|
||||
detail="Free tier limited to 1 playlist. Upgrade to Pro for unlimited.",
|
||||
)
|
||||
|
||||
# Fetch tracks from YouTube Music
|
||||
# Fetch tracks from YouTube Music (run sync ytmusicapi in thread)
|
||||
loop = asyncio.get_event_loop()
|
||||
try:
|
||||
playlist_name, playlist_image, raw_tracks = get_playlist_tracks(data.url)
|
||||
playlist_name, playlist_image, raw_tracks = await loop.run_in_executor(
|
||||
None, partial(get_playlist_tracks, data.url)
|
||||
)
|
||||
except ValueError as e:
|
||||
raise HTTPException(status_code=400, detail=str(e))
|
||||
except Exception:
|
||||
@@ -102,8 +108,11 @@ async def search_youtube_music(
|
||||
if not data.query.strip():
|
||||
raise HTTPException(status_code=400, detail="Query cannot be empty")
|
||||
|
||||
loop = asyncio.get_event_loop()
|
||||
try:
|
||||
results = search_track(data.query.strip())
|
||||
results = await loop.run_in_executor(
|
||||
None, partial(search_track, data.query.strip())
|
||||
)
|
||||
except Exception:
|
||||
raise HTTPException(status_code=500, detail="Failed to search YouTube Music")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user