Skip to content

Backfilling the Archived Shows - #1156

Open
CGBassPlayer wants to merge 31 commits into
JupiterBroadcasting:developfrom
CGBassPlayer:feature/backfill-old-shows
Open

CGBassPlayer wants to merge 31 commits into
JupiterBroadcasting:developfrom
CGBassPlayer:feature/backfill-old-shows

Conversation

@CGBassPlayer

@CGBassPlayer CGBassPlayer commented Nov 8, 2026 •

Copy link
Copy Markdown
Collaborator

Note

I know this PR is massive. I recommend pulling it down locally and seeing how it looks as this PR is primarily content additions

Closes #154

Backfill retired Jupiter Broadcasting shows

This PR adds 9 retired JB shows to the archive (1,602 episodes). It also adds their hosts and guests and splits the hosts page into active and former hosts. It fixes the episode player for shows with no Podverse feed, and strips junk links that the old-site scrape pulled into show notes.

Shows added

Each show has only its Jupiter Broadcasting-era episodes. Shows that later went independent stop at their last episode in the JB all-shows feed.

Show Episodes Range
Linux Action Show 423 13–468
BSD Now 349 1–349
Unfilter 248 40–290
TechSNAP 240 191–430
FauxShow 155 70–227
Ask Noah 100 1–100
User Error 41 48–88
Choose Linux 33 1–33
The Friday Stream 13 1–13

Episode data sources

  • Base data: the shows' RSS feeds, pulled once with jb-show-scraper-rss as a one-off tool. These shows will get no new episodes, so the scraper itself is unchanged here.
  • Episode Links: rebuilt from the feed show notes in the same format active shows use. Feed boilerplate (sponsors, "stay in touch", Twitter blocks) is dropped, and bodies that held only boilerplate are cleared.
  • Missing links, tags and video: filled from archived copies of the old jupiterbroadcasting.com WordPress pages on the Wayback Machine. This applied to TechSNAP, Unfilter, User Error and LAS. Tags come from the page keywords, video from the "Direct Download" block. Only empty fields were filled.
  • Dead media is not linked: every libsyn MP3/OGG now returns 404, so none are linked. ScaleEngine video files still serve.

Linux Action Show

  • Episodes 1–12, 31–32, 43–67, 81 and 83–87 are in no surviving feed, so they are absent.
  • No LAS audio survives, so podcast_file is empty. The live ScaleEngine MP4s are linked as Video / HD Video.
  • 296 episodes have a YouTube link, which the episode page now uses as its player (see below).

FauxShow

  • Sources: no feed survives, so every episode comes from archived old-site pages (155 of 227).
  • Fields from each page: title, description, date, tags, show notes and media.
  • Media: ScaleEngine video on 139 episodes; a YouTube link (used as the player) on 149.
  • Show metadata:
    • Description is the show's own tagline.
    • Hosts are Chris and Angela.
    • Marked inactive.
  • Image: the show logo from JB's Facebook page, padded to 1280×720 with the RETIRED badge.

Show images and Podverse

  • Images: retired-show images regenerated at 1280×720 to match active shows, from the 3000px Fireside covers. The RETIRED badge is kept.
  • Image rename: asknoah.png is now ask-noah-show.png so it matches the show slug.
  • Podverse IDs: podverse_podcast_id is added for the 7 retired shows that have a Podverse feed but commented out for now, so they use the native audio player. Podverse only plays media URLs it has approved, so the IDs can be re-enabled once these shows' are added. LAS and FauxShow have none.
  • Subscribe pages: subscribe.md (RSS link) added for the 7 retired shows with a feed, so the "Subscribe to" button on their episode pages works. LAS and FauxShow have no feed, so no button.

Show notes cleanup

  • Problem: some old-site pages have no closing "Question? Comments?" heading. The scrape read those to the end of the page and picked up comments, related-post links and the affiliate sidebar (Amazon, eBay, NewEgg, ThinkGeek, Audible and similar).
  • Fix: about 2,500 junk links removed from 148 episodes (LAS 72, FauxShow 44, Unfilter 32). Notes now stop at the comments/sidebar block.
  • Kept:
    • Links to other JB episodes from inside the notes, which are real mentions.
    • FauxShow's own footer links (Angela's Twitter, the browser extensions).

Tag cleanup

  • Trailing dots: the episode page's tag link drops a trailing dot, so tags like how to. and kde e.v. linked to a page that doesn't exist. The dot is stripped from 6 tags, and the junk ... tag (119 episodes) and empty tags (17) are removed.
  • podcast: Unfilter 180 had podcast. and BSD Now 130 had podcast .... The dotted one collided with the plain podcast tag and took its page, so /tags/podcast/ returned 404 for every episode. Both now use podcast.
  • Outside the retired shows: 5 existing episodes are touched (Jupiter Extras 66, Linux Action News 253, Linux Unplugged 332 and 592, Office Hours 23).

Hosts and people

Hosts page

  • /hosts/ now lists active hosts first, then a Former Hosts section for people with active: false.
  • A horizontal rule separates the two sections, with spacing under the Former Hosts title. Bulma's .columns negative top margin had cancelled that spacing.
  • On mobile (376–599px) the two-column host grid no longer overflows. The former hosts' larger avatars and long bios had stretched it, so the columns are now minmax(0, 1fr) and card text wraps.

Who counts as active

  • A host is active when they appear in the hosts list of a show with active = true. This is maintained by hand, since it only changes when a show ends.
  • Active today: Chris, Wes, Brent and Angela.
  • Jupiter Extras' hosts list is trimmed to chris/brent/wes. Alex and Allan Jude are now former hosts.

is_archived renamed to is_hidden

  • The flag hides a person entirely, which is still used for friends.
  • Former hosts use active: false instead.

People changes (24 added, 35 updated, 4 removed)

  • New hosts:
    • Dan Langille (TechSNAP 301–347)
    • Bryan Lunduke (LAS 42–201)
    • Matt Hartley (LAS 280–311)
  • Other new people: retired-show hosts and guests from the feeds.
  • Michael Dominick: now a host (active: false) instead of a guest, so Coder Radio's host list links to /hosts/michael/.
  • Avatars: taken from Fireside episode pages (600px / 300px) or archived show host pages. Bryan Lunduke's is his GitHub avatar, since no photo survives on the old site.
  • Bios: 29 filled from Fireside profile pages and archived pages.
  • Removed: Joe Ressington's person entries (joe.md and the unused duplicate joeres.md), and his username from episode host/guest lists. Episodes and show notes are unchanged.
  • Guests with no episodes removed: jnsgruk, and michaetunnell, a typo duplicate of michaeltunnell.

Episode host credits

  • TechSNAP:
    • 191–300: Allan Jude + Chris
    • 301–347: Dan Langille + Wes
  • LAS: Chris on every episode. Bryan Lunduke on 42–201, Matt Hartley on 280–311, Noah on 361–463.
  • FauxShow: Chris + Angela on every episode.
  • Evidence: archived show pages and episode descriptions.

Episode player and download links

Player

  • Problem: the Podverse embed was used whenever podcast_file was set. With no podverse_podcast_id it renders an empty player.
  • Order now:
    1. Podverse, when the show has an ID (commented out on the retired shows for now, see Show images and Podverse).
    2. Otherwise a native audio player, when the episode has MP3/OGG audio.
    3. Otherwise a YouTube embed (youtube-nocookie), when youtube_link is set.
  • Why not a native MP4 player: ScaleEngine's HTTPS certificate is for *.secdn.net, not jb-dl.cdn.scaleengine.net. Its MP4s are effectively http-only, so browsers would block them on the https site.

Download links

  • The Direct Download line is hidden when an episode has no media.
  • Separators are now only placed between links.

Tests

  • test/e2e/test_hosts.py:
    • active hosts first
    • Former Hosts section placement
    • title spacing
    • rule between sections
    • hidden people not listed
  • test/e2e/test_episode_player.py:
    • Podverse when the show has an ID
    • native audio when it doesn't (TechSNAP, whose ID is commented out)
    • YouTube when there is no audio
    • no "MP3" link on video-only episodes
    • no player or download line without media
  • Existing e2e tests updated for the above: the player test allows no audio on archived shows, the Subscribe button is expected only where a subscribe.md exists, the people tests read is_hidden, and the Coder Radio host and dot-tag xfails are removed.
  • Hugo 0.105 build is clean. Merged with current develop; the full e2e suite passes locally against that build (the 404-page tests excepted, which need nginx).

Known gaps

Linux Action Show

  • Co-hosts for episodes 202–279 and 312–360 are unknown, so only Chris is credited.
  • 127 episodes have no YouTube link and show no player.
  • 123 episodes had no archived old-site page, so they keep the feed show notes only.

FauxShow

  • Episodes 1–69, 71, 72 and 94 were never archived, so they are absent.
  • Episodes 74–78 have no media or links.
  • No audio or durations survive.

Podverse

  • The retired shows' podverse_podcast_ids are commented out until Podverse approves their media URLs, so they use the native audio player. Uncomment a show's ID in its _index.md to turn Podverse back on.

People

  • Bryan Lunduke has no bio, and his avatar is a logo rather than a photo.
  • Some people still have empty bios; no source text was found for them.

Hosts with active: false in their front matter are listed under a new
"Former Hosts" section at the bottom of /hosts/ (rendered after the
last page of the paginated active list). is_archived still hides a
person entirely.
Scraped with jb-show-scraper-rss (feature/backfill-old-shows) from each
show's Fireside feed, limited to JB-era episodes:

- TechSNAP 191-430 (240; 157 older episodes have no host tags in the feed)
- BSD Now 1-349 (went independent after 349)
- Choose Linux 1-33
- Ask Noah Show 1-100 (went independent after 100)
- User Error 48-88
- Unfilter 40-290 (248; later revival episodes excluded, old pages
  gone so no sponsor data)
- The Friday Stream 1-13

Each show gets an inactive section (_index.md, subscribe.md, cover art)
so it appears in /archive/. 20 new people files.

Every host now has an active flag: true only for hosts of a still-
running show within the last year of that show (Chris, Wes, Brent,
Angela). Anyone who hosted episodes is type: host. is_archived dropped
from allanjude/ell/chzbacon so they show under Former Hosts;
asknoah.png renamed to match the show slug.
Alex, Allan Jude and Friends are in Jupiter Extras' hosts list, so they
are active; everyone else who hosted is a former host.
Alex, Allan Jude and Friends were occasional Extras hosts; trimming the
list makes them former hosts under the active-show hosts-list rule.
The flag hides a person from the hosts/guests/people lists; former hosts
are now expressed with active: false, so "archived" no longer fits.
Delete people/joe.md (Joe Ressington) and the unused duplicate
people/joeres.md ("Joe Resington") with their avatars, and drop the
"joe" username from episode hosts/guests (Choose Linux, User Error,
The Friday Stream) and from the Choose Linux / User Error hosts lists.
Episodes, descriptions, tags and show notes are unchanged.
Episode Links now use the active-show bullet format and come from every link in the feed show notes: BSD Now headline links (previously only bullet text was kept), Ask Noah Cliff Notes and Fireside Links lists (previously only the Twitter boilerplate), plus Fireside link descriptions. Sponsor banners, Patreon and Stay In Touch boilerplate are dropped.
Rebuilt from the 3000px Fireside covers: background texture tiled out to 16:9 (phase-aligned with the cover), logo centred, RETIRED badge kept top-left. Ask Noah padded on its black background. Unfilter's photographic cover is scaled to full width with the top 720 rows kept, so the logo is untouched.
Taken from the Fireside episode pages of each person's appearances (600px avatar + 300px small, matching the existing convention). Covers hosts Benedict Reuschling, Kris Moore, JT Pennington and 17 guests. Chase Nunes (Unfilter) still has none: Unfilter's Fireside site is gone.
29 bios taken from each person's Fireside host/guest profile (found via the episode pages they appear on); Chase Nunes from the archived unfilter.show/hosts page.
Bulma .columns has margin-top -0.75rem, which cancelled the title's my-3 bottom margin and left the cards touching the heading; mb-5 nets a 0.75rem gap.
Matched on each show's feed URL via the Podverse API (Unfilter via its Podhome feed, where the Fireside feed now redirects). TechSNAP's hosts list also gains dan-langille.
Bio from his GitHub profile; avatar is his 181px GitHub photo scaled up, since the JB-hosted one was never archived.
… pages

Hosts from the archived show page's contact line (Chris | Allan through ep 300, Wes | Dan from 2017-03), ep 301 'The Next Generation' and ep 347's farewell to Dan. 60 episodes filled from archived jupiterbroadcasting.com pages (show-notes links, keywords as tags, YouTube and ScaleEngine video, which still serves). Dead libsyn OGG links left out.
…ages

246 of 248 episodes matched to archived jupiterbroadcasting.com pages via the Wayback URL index. Episodes with links: 18 -> 241 (6.5k links). Tags from page keywords, YouTube links filled. Dead libsyn OGG links left out.
The 2019-20 old-site pages only link back to error.show for notes, so YouTube is the one field they add (40 of 41 episodes).
88 pages previously blocked by Wayback rate limiting, plus 289 and 340-347 mapped via the old-site URL index; Fireside-era 348+ gained YouTube/video and extra links where the old page had more. All 240 episodes now have show-notes links and tags.
Episodes from the feeds, show-notes links and video from archived old-site
pages. Audio is gone everywhere, so podcast_file is the live mobile MP4.
Hosts: Chris on all; Bryan Lunduke 42-201, Matt Hartley 280-311, Noah 361-463.
Podverse needs podverse_podcast_id, so LAS episodes rendered an empty embed.
ScaleEngine MP4s are http-only (cert is *.secdn.net), so a native player
would be blocked on https. Download links skip the MP3 label for MP4
podcast files and are hidden when an episode has no media.
No feed survives; episodes come from archived old-site pages: title, date,
description, tags, show-notes links, YouTube and the still-live ScaleEngine
MP4s. Eps 1-69, 71, 72 and 94 were never archived; 74-78 only had blip.tv
media. Show image is the FauxShow logo from JB's Facebook page.
Pages without a closing "Question? Comments?" heading were parsed to the
end of the document, picking up related-post links and the affiliate
sidebar (Amazon/eBay/NewEgg...). Notes now end at the comments/sidebar
block. LAS 72 eps, Unfilter 32, FauxShow 44; ~2.5k junk links removed.
@CGBassPlayer CGBassPlayer changed the title Hosts page: split active hosts from a Former Hosts section Backfilling the Archived Shows Nov 8, 2026
@CGBassPlayer
CGBassPlayer marked this pull request as ready for review November 8, 2026 16:59
@CGBassPlayer CGBassPlayer added third-party site low priority ... but not necessarily unimportant in progress currently being worked on labels Nov 8, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

in progress currently being worked on low priority ... but not necessarily unimportant show notes third-party site

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Archive - populate with archived shows

1 participant