myYouTube/backend/app/services
vrubelroman 252f38597d Split shorts from regular videos with a vertical shorts feed
- Detect shorts by duration (SHORTS_MAX_DURATION_SECONDS, default 180)
  and expose is_short in feed, video and channel-activity DTOs.
- Feed gains type=all|long|short and anchor; lists show a two-mode
  'Обычные | Shorts' filter (no 'Все') persisted in the URL.
- Clicking a short opens /shorts/🆔 a vertical scroll-snap feed with
  autoplay for the active slide, context-aware endpoints and infinite
  loading.
- Keep the sound choice across swipes, syncing with the player's own
  mute control and guarding against the widget's stale isMuted() reads.
2026-09-28 09:33:35 +00:00
..
__init__.py Implement Phases 1-5: skeleton, OAuth, categories, video sync/feed, playback 2026-09-16 18:44:30 +00:00
download_jobs.py Fix download status handling and the blank page after download 2026-09-27 23:36:09 +00:00
google_oauth.py Fix review findings and remove Uncategorized from sidebar 2026-09-17 17:22:22 +00:00
metube_client.py Fix review findings and remove Uncategorized from sidebar 2026-09-17 17:22:22 +00:00
scheduler.py Channel features: subscribers, new-videos badges, activity-driven sync 2026-09-17 21:07:33 +00:00
state.py Implement Phases 1-5: skeleton, OAuth, categories, video sync/feed, playback 2026-09-16 18:44:30 +00:00
sync.py Channel features: subscribers, new-videos badges, activity-driven sync 2026-09-17 21:07:33 +00:00
sync_trigger.py Channel features: subscribers, new-videos badges, activity-driven sync 2026-09-17 21:07:33 +00:00
video_presentation.py Split shorts from regular videos with a vertical shorts feed 2026-09-28 09:33:35 +00:00
youtube_client.py Channel features: subscribers, new-videos badges, activity-driven sync 2026-09-17 21:07:33 +00:00