- GET /api/feed: filter by tags (and/or), channel, duration, age, search; sort
newest/oldest/views/duration/shuffle; default hides Shorts, live/upcoming and
watched (was_live VODs stay visible); offset paging with has_more
- POST /api/videos/{id}/state for watched/saved/hidden/new
- User.preferences JSON + GET /api/me and PUT /api/me/preferences
- Migration 0004 (preferences column + video_states table)
|
||
|---|---|---|
| .. | ||
| __init__.py | ||
| feed.py | ||
| health.py | ||
| me.py | ||
| sync.py | ||
| tags.py | ||