Compare commits
No commits in common. "1b141f57ebe9f5c6f2504523f5b0dfde8e3cbb56" and "9129b9ad5423c57a6bcdc9d37f51e44a0a7131ac" have entirely different histories.
1b141f57eb
...
9129b9ad54
3 changed files with 6 additions and 6 deletions
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue