Implement channel and playlist browsing
BrowsePage accepts pasted or routed channel/playlist URLs: - Channels get Videos / Shorts / Live sub-tabs mapped to the channel's /videos, /shorts and /streams listings, lazily fetched 24 at a time with -I range pagination; channel title and id resolve from a cheap -I 1:1 metadata fetch. Subscribe emits subscribeRequested for the Feed page to wire up. - Playlists get a single grid with Play all (bulk-enqueues into the Watch queue) and a Download button that deep-links the playlist into the Downloads tab. Workers are parented to their pages and fetch errors surface as status text instead of crashing (verified against a channel with no videos tab). fetch_flat_info gains an items="1:1" limiter so metadata probes no longer enumerate whole channels. Verified live: kurzgesagt channel (24 cards, title+id resolved) and a 17-video playlist with Play-all queueing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -674,7 +674,19 @@
|
||||
"clear_queue": "Clear queue"
|
||||
},
|
||||
"browse": {
|
||||
"coming_soon": "Channel & playlist browsing coming soon"
|
||||
"placeholder": "Paste a channel or playlist URL...",
|
||||
"open": "Open",
|
||||
"subscribe": "Subscribe",
|
||||
"unsubscribe": "Unsubscribe",
|
||||
"play_all": "Play all",
|
||||
"download_playlist": "Download",
|
||||
"tab_videos": "Videos",
|
||||
"tab_shorts": "Shorts",
|
||||
"tab_live": "Live",
|
||||
"loading": "Loading...",
|
||||
"entry_count": "{count} videos",
|
||||
"failed": "Failed to load: {error}",
|
||||
"hint": "Open a channel (youtube.com/@name) or playlist URL, or navigate here from Search."
|
||||
},
|
||||
"feed": {
|
||||
"coming_soon": "Subscriptions feed coming soon"
|
||||
|
||||
Reference in New Issue
Block a user