Embed YouTube recordings on talks and keynotes pages#28
Merged
Conversation
Following the same pattern used on the 2025 archive site after that event wrapped, embed each talk's recording from the PyTexas 2026 YouTube playlist directly under the talk description on the schedule pages, before the speaker block. Videos are matched to entries by speaker name (some recording titles differ slightly from the original schedule titles, but each speaker has a unique session). Coverage: - 16 of 17 entries in `schedule/talks.md`. Sumaiya Nalukwago's talk is intentionally left without an embed because there is no recording in the published playlist. - Both keynotes in `schedule/keynotes.md` (Dawn Wages, Hynek Schlawack). Two lightning-talk recordings exist in the playlist but are not added here since neither `talks.md` nor `keynotes.md` has a section for them — matches what the 2025 archive did.
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
The link checker is currently failing on `https://abmparking.com/facilities/austin-city-hall-garage/` (the "Other Parking Options" link in `attend/in-person.md`). The URL is fine for real users — a browser request returns 200 — but the server returns 403 to requests without a browser User-Agent, which is a common Cloudflare/anti-bot pattern. 403 means "Forbidden", not "Not Found". The resource exists; the bot just isn't allowed to fetch it. For a link checker on a marketing site, treating 403 the same as 200 is the standard workaround. Adds 403 to the existing `--accept` list alongside the redirects and 429 we already pass through.
Member
|
Wasn't sure best way to do this so made a PR to your branch with some suggested updates. See #29 Will finish my review soon |
* create and add keynote speaker formatting * add keynote slide links and other info shared * add speaker reply formatting + cleanup * add formatting and available resources
Two failures in CI link-check, both new on this branch: 1. Adam Gordon Bell's "Repo" link in `talks.md` had two URLs jammed into one markdown link target, separated by a space. Lychee URL-encoded the space to `%20` and 404'd on the resulting pseudo-URL. The trailing Pulumi URL was already linked separately on the next bullet as "His [site]", so removing it from the "[Repo]" target loses nothing and points the link at the actual repo Adam referenced. 2. Indrasena Manga's LinkedIn profile (`indra7979`) is the correct URL but LinkedIn returned 404 to the GitHub runner's request. Two other `linkedin.com/in/` profiles on this same branch passed the same lychee run, so it's targeted anti-bot behavior on that specific request, not a blanket runner block. Ignoring that one URL in `.lycheeignore` is more auditable than a wildcard.
# Conflicts: # .ai-sessions/lessons.md
Followup to the previous commit. The targeted single-URL ignore for `indra7979`'s profile assumed the 404 was localized to that handle, but a subsequent run showed LinkedIn's anti-bot flips on other `/in/` URLs too, intermittently. Avik and Kassandra's profiles passed earlier and could fail on the next run. Replacing the single entry with `https://www.linkedin.com/` covers every LinkedIn URL the site uses today (all `linkedin.com/in/...` speaker profiles in `docs/`). Acceptable for a marketing-site link checker; LinkedIn link rot is not something CI needs to gate deploys on.
graffhyrum
pushed a commit
to graffhyrum/2026
that referenced
this pull request
May 14, 2026
* Embed YouTube recordings on talks and keynotes pages Following the same pattern used on the 2025 archive site after that event wrapped, embed each talk's recording from the PyTexas 2026 YouTube playlist directly under the talk description on the schedule pages, before the speaker block. Videos are matched to entries by speaker name (some recording titles differ slightly from the original schedule titles, but each speaker has a unique session). Coverage: - 16 of 17 entries in `schedule/talks.md`. Sumaiya Nalukwago's talk is intentionally left without an embed because there is no recording in the published playlist. - Both keynotes in `schedule/keynotes.md` (Dawn Wages, Hynek Schlawack). Two lightning-talk recordings exist in the playlist but are not added here since neither `talks.md` nor `keynotes.md` has a section for them — matches what the 2025 archive did. * Accept 403 in lychee link check The link checker is currently failing on `https://abmparking.com/facilities/austin-city-hall-garage/` (the "Other Parking Options" link in `attend/in-person.md`). The URL is fine for real users — a browser request returns 200 — but the server returns 403 to requests without a browser User-Agent, which is a common Cloudflare/anti-bot pattern. 403 means "Forbidden", not "Not Found". The resource exists; the bot just isn't allowed to fetch it. For a link checker on a marketing site, treating 403 the same as 200 is the standard workaround. Adds 403 to the existing `--accept` list alongside the redirects and 429 we already pass through. * Add/youtube video embeds formatting update (pytexas#29) * create and add keynote speaker formatting * add keynote slide links and other info shared * add speaker reply formatting + cleanup * add formatting and available resources * Fix two broken links flagged by lychee on PR pytexas#28 Two failures in CI link-check, both new on this branch: 1. Adam Gordon Bell's "Repo" link in `talks.md` had two URLs jammed into one markdown link target, separated by a space. Lychee URL-encoded the space to `%20` and 404'd on the resulting pseudo-URL. The trailing Pulumi URL was already linked separately on the next bullet as "His [site]", so removing it from the "[Repo]" target loses nothing and points the link at the actual repo Adam referenced. 2. Indrasena Manga's LinkedIn profile (`indra7979`) is the correct URL but LinkedIn returned 404 to the GitHub runner's request. Two other `linkedin.com/in/` profiles on this same branch passed the same lychee run, so it's targeted anti-bot behavior on that specific request, not a blanket runner block. Ignoring that one URL in `.lycheeignore` is more auditable than a wildcard. * Broaden lychee ignore to all LinkedIn URLs Followup to the previous commit. The targeted single-URL ignore for `indra7979`'s profile assumed the 404 was localized to that handle, but a subsequent run showed LinkedIn's anti-bot flips on other `/in/` URLs too, intermittently. Avik and Kassandra's profiles passed earlier and could fail on the next run. Replacing the single entry with `https://www.linkedin.com/` covers every LinkedIn URL the site uses today (all `linkedin.com/in/...` speaker profiles in `docs/`). Acceptable for a marketing-site link checker; LinkedIn link rot is not something CI needs to gate deploys on. --------- Co-authored-by: Kassandra Keeton <ProsperousHeart@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replicates the post-event pattern from the 2025 site (commit c1ab52b on the 2025 repo, "adding videos to site") by embedding each recording from the PyTexas 2026 YouTube playlist directly on the schedule pages.
<iframe>is placed under the talk description, immediately before the**Speaker:**block, matching the 2025 layout.youtube-nocookie.com/embed/<id>(privacy-enhanced mode), same as 2025.Coverage
Talks (
docs/schedule/talks.md) — 16 of 17 entries embedded:Keynotes (
docs/schedule/keynotes.md):Not embedded
talks.md. If it should be added, that's a separate edit.talks.md/keynotes.mdhave no lightning-talks section. The 2025 archive likewise omitted lightning talks from the schedule pages.Test plan
uv run mkdocs build --strictpassesjust serveand spot-check that each iframe renders and points at the right video