Fix YouTube Music import (run sync ytmusicapi in thread), remove all Spotify UI

This commit is contained in:
root
2026-03-31 00:30:55 -05:00
parent 1eea237c08
commit 50e9b492d5
8 changed files with 20 additions and 195 deletions

View File

@@ -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")