How episodes show on /podcasts
Two episodes exist and the page has a holding line. Decide what an episode is on this site, then build it.
The show is SCOFTI CON, built in its own project (C:\ai\scofti-con):
the crew at an ESPN-style desk, reporting what goes up on scofti.com and
roasting the arcade's wipeouts. Episode 1, The Winter Games Desk, is 3:42 and
on YouTube through the ScofTV channel manager. Episode 2 is recorded and in the
channel manager's inbox.
What changes from SC-5, SC-13 and SC-20
Every earlier podcast ticket assumed audio: files in Blob, an <audio>
player, maybe an RSS feed with enclosures. The show that exists is video,
1080p, published on YouTube. That turns most of those questions around:
- No Blob for episodes. The video lives on YouTube; the site embeds it. The permanent-URL problem SC-20 worried about is YouTube's, not ours.
- No RSS feed for now. A podcast-app feed needs audio enclosures. An audio-only cut of each episode would be a separate product and a separate decision.
- The rooms rule holds. Video goes nowhere near the jukebox. An episode is a YouTube embed, like ScofTV's screen.
The question to decide
- Episode as an entry.
src/content/entries/podcasts/<slug>.mdx, nested the way Model Behavior is, with a YouTube id in its frontmatter. Each episode gets its own page, share card and sitemap row, and a rundown in the body./podcastsbecomes the index, newest first, uncapped. - Podcasts as a room. One page with a screen and a list beside it, the ScofTV pattern. Quicker, but an episode has no address of its own.
- Both. The room on
/podcasts, each row linking to an episode page.
Recommendation: 1, with the newest episode playing at the top of
/podcasts. It is what the entry system already does for free, and an
episode with its own address can be linked from a Model Behavior piece it
covered.
Also open: whether SCOFTI CON episodes also appear on /scoftv, since
ScofTV presents the show.
Decided: our own player, not YouTube
The episodes are our own video files, so the page plays them itself. None of
the three shapes above. /podcasts is now a room like ScofTV, built on the
same screen:
- The newest episode waits on the screen with one play button. Every episode sits underneath as a thumbnail with its length; press one and it plays on the screen above, with the room dimmed.
- The player is a
<video>with our own controls: play, seek, mute, time, full screen, and a YouTube ↗ link to the same episode on the ScofTV channel. That link is the only thing that touches YouTube, and it loads nothing until someone clicks it. - The video files are web cuts (1080p60, starts streaming before it finishes
loading) in the public Blob store under
podcasts/, uploaded withscripts/podcast-upload.mjs. Episode 1 is 102 MB, down from 253 MB. Episode 2 is 54 MB, down from 134 MB. - The thumbnails are local, in
public/images/podcasts/. #scofti-con-2in the URL opens on that episode, so one episode can be linked.- The episode list lives in
src/lib/podcasts.ts. The oldpodcasts.mdxstanding page is gone, and/podcastsis a route with its own share card and sitemap row. - The privacy page has a Podcasts section saying exactly this.
Adding an episode: encode it, upload it, add a row to EPISODES, and move
PODCASTS_UPDATED.
Settled below: SCOFTI CON is on /scoftv too.
On ScofTV too
Michael: podcasts can also be on ScofTV, but not everything on ScofTV will be
a podcast. Both episodes are rows on the ScofTV wall, newest first, played
there through the YouTube frame like every other show. The two lists are kept
separately, so ScofTV picks what it shows and /podcasts lists only episodes.