Compare commits

..

No commits in common. "1b141f57ebe9f5c6f2504523f5b0dfde8e3cbb56" and "9129b9ad5423c57a6bcdc9d37f51e44a0a7131ac" have entirely different histories.

3 changed files with 6 additions and 6 deletions

View file

@ -626,7 +626,7 @@ async def stream_audio(id: str):
try: try:
# Check Cache for stream URL # Check Cache for stream URL
# Check Cache for stream URL # Check Cache for stream URL
cache_key = f"v9:stream:{id}" # v9 cache key - tv_embedded auth bypass cache_key = f"v8:stream:{id}" # v8 cache key - deep debug mode
cached_data = cache.get(cache_key) cached_data = cache.get(cache_key)
stream_url = None stream_url = None
@ -644,7 +644,7 @@ async def stream_audio(id: str):
print(f"DEBUG: Fetching new stream URL for '{id}'") print(f"DEBUG: Fetching new stream URL for '{id}'")
url = f"https://www.youtube.com/watch?v={id}" url = f"https://www.youtube.com/watch?v={id}"
ydl_opts = { ydl_opts = {
# Use tv_embedded client which often bypasses sign-in requirements # Try standard bestaudio but prefer m4a. Removed protocol constraint to see what we actually get.
'format': 'bestaudio[ext=m4a]/bestaudio/best', 'format': 'bestaudio[ext=m4a]/bestaudio/best',
'quiet': True, 'quiet': True,
'noplaylist': True, 'noplaylist': True,
@ -653,8 +653,7 @@ async def stream_audio(id: str):
'socket_timeout': 30, 'socket_timeout': 30,
'retries': 3, 'retries': 3,
'force_ipv4': True, 'force_ipv4': True,
# tv_embedded is an embedded player client that usually doesn't require auth 'extractor_args': {'youtube': {'player_client': ['ios', 'android', 'web']}},
'extractor_args': {'youtube': {'player_client': ['tv_embedded', 'mediaconnect']}},
} }
try: try:

View file

@ -1,7 +1,8 @@
```python
from fastapi import FastAPI from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware from fastapi.middleware.cors import CORSMiddleware
from contextlib import asynccontextmanager from contextlib import asynccontextmanager
from backend.api.routes import router as api_router from backend.api import routes
from backend.scheduler import start_scheduler from backend.scheduler import start_scheduler
import os import os

View file

@ -3,7 +3,7 @@ uvicorn==0.34.0
spotdl spotdl
pydantic==2.10.4 pydantic==2.10.4
python-multipart==0.0.20 python-multipart==0.0.20
APScheduler>=3.10 APScheduler==0.0.20
requests==2.32.3 requests==2.32.3
yt-dlp==2024.12.23 yt-dlp==2024.12.23
ytmusicapi==1.9.1 ytmusicapi==1.9.1