Add widget API endpoints for backstage dashboard integration
New GET /api/widget/recent — returns recent unwatched videos from followed channels (title, channel, thumbnail, published_at, duration, direct URL). New GET /api/widget/stats — unwatched count, new this week, channel count. Both endpoints auth via X-Widget-Key header (WIDGET_API_KEY env var) so external services can call without JWT token lifecycle management. Targets the first admin user's data. Also: pass WIDGET_API_KEY through docker-compose environment. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -6,7 +6,7 @@ from fastapi.staticfiles import StaticFiles
|
||||
from .config import settings
|
||||
from .database import init_db, SessionLocal
|
||||
from .services import ytdlp as ytdlp_service
|
||||
from .routers import auth, channels, videos, search, downloads, discovery, settings as settings_router, stats as stats_router, export as export_router, collections as collections_router, admin as admin_router, playlists as playlists_router
|
||||
from .routers import auth, channels, videos, search, downloads, discovery, settings as settings_router, stats as stats_router, export as export_router, collections as collections_router, admin as admin_router, playlists as playlists_router, widget as widget_router
|
||||
|
||||
app = FastAPI(title="YouTube Hub", version="0.1.0")
|
||||
|
||||
@@ -30,6 +30,7 @@ app.include_router(export_router.router, prefix="/api/export", tags=["export"])
|
||||
app.include_router(collections_router.router, prefix="/api/collections", tags=["collections"])
|
||||
app.include_router(admin_router.router, prefix="/api/admin", tags=["admin"])
|
||||
app.include_router(playlists_router.router, prefix="/api/playlists", tags=["playlists"])
|
||||
app.include_router(widget_router.router, prefix="/api/widget", tags=["widget"])
|
||||
|
||||
|
||||
os.makedirs(settings.download_path, exist_ok=True)
|
||||
|
||||
Reference in New Issue
Block a user