Skip to content

feat: add WWDC 2026 videos#48

Open
denandreychuk wants to merge 1 commit into
kimsungwhee:mainfrom
Pimine:add-wwdc-2026-videos
Open

feat: add WWDC 2026 videos#48
denandreychuk wants to merge 1 commit into
kimsungwhee:mainfrom
Pimine:add-wwdc-2026-videos

Conversation

@denandreychuk

Copy link
Copy Markdown

Summary

Adds bundled data for all 136 WWDC 2026 sessions, matching the existing per-video JSON schema and regenerating every index layer. This is a data-only change — no source code is touched.

Closes #47.

Count
Sessions 136
With transcript 113
With code examples 87
With HD/SD download links 122
Topics represented 18 of 19

Heads-up: Apple changed the 2026 page structure

The /transcript, /code, and /resources sub-pages now 302-redirect to /videos/ — that content is served inline on the main session page instead, and the transcript markup moved to #transcript-content (<span class="sentence">). So the data here was generated by parsing the main session page directly rather than the old sub-pages. Topic membership still comes from the per-topic listing pages, so categorization is consistent with prior years. Worth knowing for whatever regenerates future years.

Notes for review

  • Group Labs: 19 entries (ids 80018121, e.g. "Swift Group Lab") are live lab sessions with no transcript or code. They're included because they appear on Apple's topic/year pages, and are correctly flagged hasTranscript: false / hasCode: false. Happy to drop them if you'd prefer sessions only.
  • Maps & Location has no 2026 sessions, so it's absent from the 2026 topic list (18 of 19 topics present).
  • index.json statistics.byTopic continues to mirror each by-topic/<id> index's videoCount (the dataset's existing invariant), and byYear / videosWithCode / videosWithTranscript / totalVideos were all recomputed.
  • Timing: WWDC 2026 just wrapped, so a handful of sessions don't have transcripts posted yet — those are flagged accordingly and can be re-scraped later.

Verification

Ran the full CI gate set locally:

  • pnpm run lint — 0 errors
  • npx tsc --noEmit — clean
  • pnpm test462 passed
  • pnpm run build — succeeds; dist/data/wwdc bundles 1,437 JSON files (incl. by-year/2026)
  • Integrity: every dataFile reference resolves; byYear sums to totalVideos (1402); per-video key order matches prior years.

🤖 Generated with Claude Code

Add bundled data for all 136 WWDC 2026 sessions (113 with transcripts,
87 with code examples), matching the existing per-video JSON schema and
regenerating the by-year, by-topic, all-videos, and global indexes.

Apple restructured the 2026 video pages: the /transcript, /code and
/resources sub-pages now 302-redirect to /videos/, and that content is
served inline on the main session page. The data was produced by parsing
the main pages directly; topic membership still comes from the per-topic
listing pages, so categorization stays consistent with prior years.

Notes:
- 19 entries are "Group Lab" sessions (ids 8001-8121): live labs with no
  transcript or code, flagged hasTranscript/hasCode = false.
- Maps & Location has no 2026 sessions, so it is absent from the 2026 topic
  list (18 of 19 topics present).
- statistics.byTopic continues to mirror each by-topic index's videoCount.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 157 files, which is 7 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 3594b166-aa76-44fc-aa98-920c5ac5528e

📥 Commits

Reviewing files that changed from the base of the PR and between 28c06cb and 5a72336.

📒 Files selected for processing (157)
  • data/wwdc/all-videos.json
  • data/wwdc/by-topic/accessibility-inclusion/index.json
  • data/wwdc/by-topic/app-services/index.json
  • data/wwdc/by-topic/app-store-distribution-marketing/index.json
  • data/wwdc/by-topic/audio-video/index.json
  • data/wwdc/by-topic/business-education/index.json
  • data/wwdc/by-topic/design/index.json
  • data/wwdc/by-topic/developer-tools/index.json
  • data/wwdc/by-topic/essentials/index.json
  • data/wwdc/by-topic/graphics-games/index.json
  • data/wwdc/by-topic/health-fitness/index.json
  • data/wwdc/by-topic/machine-learning-ai/index.json
  • data/wwdc/by-topic/photos-camera/index.json
  • data/wwdc/by-topic/privacy-security/index.json
  • data/wwdc/by-topic/safari-web/index.json
  • data/wwdc/by-topic/spatial-computing/index.json
  • data/wwdc/by-topic/swift/index.json
  • data/wwdc/by-topic/swiftui-ui-frameworks/index.json
  • data/wwdc/by-topic/system-services/index.json
  • data/wwdc/by-year/2026/index.json
  • data/wwdc/index.json
  • data/wwdc/videos/2026-101.json
  • data/wwdc/videos/2026-102.json
  • data/wwdc/videos/2026-111.json
  • data/wwdc/videos/2026-112.json
  • data/wwdc/videos/2026-121.json
  • data/wwdc/videos/2026-122.json
  • data/wwdc/videos/2026-201.json
  • data/wwdc/videos/2026-203.json
  • data/wwdc/videos/2026-204.json
  • data/wwdc/videos/2026-205.json
  • data/wwdc/videos/2026-206.json
  • data/wwdc/videos/2026-207.json
  • data/wwdc/videos/2026-209.json
  • data/wwdc/videos/2026-210.json
  • data/wwdc/videos/2026-212.json
  • data/wwdc/videos/2026-213.json
  • data/wwdc/videos/2026-215.json
  • data/wwdc/videos/2026-216.json
  • data/wwdc/videos/2026-219.json
  • data/wwdc/videos/2026-220.json
  • data/wwdc/videos/2026-221.json
  • data/wwdc/videos/2026-222.json
  • data/wwdc/videos/2026-223.json
  • data/wwdc/videos/2026-224.json
  • data/wwdc/videos/2026-226.json
  • data/wwdc/videos/2026-227.json
  • data/wwdc/videos/2026-230.json
  • data/wwdc/videos/2026-232.json
  • data/wwdc/videos/2026-233.json
  • data/wwdc/videos/2026-234.json
  • data/wwdc/videos/2026-237.json
  • data/wwdc/videos/2026-240.json
  • data/wwdc/videos/2026-241.json
  • data/wwdc/videos/2026-242.json
  • data/wwdc/videos/2026-243.json
  • data/wwdc/videos/2026-246.json
  • data/wwdc/videos/2026-250.json
  • data/wwdc/videos/2026-251.json
  • data/wwdc/videos/2026-252.json
  • data/wwdc/videos/2026-253.json
  • data/wwdc/videos/2026-254.json
  • data/wwdc/videos/2026-256.json
  • data/wwdc/videos/2026-258.json
  • data/wwdc/videos/2026-259.json
  • data/wwdc/videos/2026-260.json
  • data/wwdc/videos/2026-261.json
  • data/wwdc/videos/2026-262.json
  • data/wwdc/videos/2026-265.json
  • data/wwdc/videos/2026-267.json
  • data/wwdc/videos/2026-268.json
  • data/wwdc/videos/2026-269.json
  • data/wwdc/videos/2026-271.json
  • data/wwdc/videos/2026-272.json
  • data/wwdc/videos/2026-274.json
  • data/wwdc/videos/2026-275.json
  • data/wwdc/videos/2026-277.json
  • data/wwdc/videos/2026-278.json
  • data/wwdc/videos/2026-279.json
  • data/wwdc/videos/2026-280.json
  • data/wwdc/videos/2026-281.json
  • data/wwdc/videos/2026-282.json
  • data/wwdc/videos/2026-283.json
  • data/wwdc/videos/2026-284.json
  • data/wwdc/videos/2026-285.json
  • data/wwdc/videos/2026-286.json
  • data/wwdc/videos/2026-287.json
  • data/wwdc/videos/2026-289.json
  • data/wwdc/videos/2026-290.json
  • data/wwdc/videos/2026-292.json
  • data/wwdc/videos/2026-295.json
  • data/wwdc/videos/2026-297.json
  • data/wwdc/videos/2026-298.json
  • data/wwdc/videos/2026-299.json
  • data/wwdc/videos/2026-303.json
  • data/wwdc/videos/2026-304.json
  • data/wwdc/videos/2026-305.json
  • data/wwdc/videos/2026-309.json
  • data/wwdc/videos/2026-310.json
  • data/wwdc/videos/2026-312.json
  • data/wwdc/videos/2026-314.json
  • data/wwdc/videos/2026-315.json
  • data/wwdc/videos/2026-319.json
  • data/wwdc/videos/2026-320.json
  • data/wwdc/videos/2026-321.json
  • data/wwdc/videos/2026-322.json
  • data/wwdc/videos/2026-324.json
  • data/wwdc/videos/2026-325.json
  • data/wwdc/videos/2026-326.json
  • data/wwdc/videos/2026-328.json
  • data/wwdc/videos/2026-330.json
  • data/wwdc/videos/2026-334.json
  • data/wwdc/videos/2026-335.json
  • data/wwdc/videos/2026-338.json
  • data/wwdc/videos/2026-339.json
  • data/wwdc/videos/2026-341.json
  • data/wwdc/videos/2026-343.json
  • data/wwdc/videos/2026-344.json
  • data/wwdc/videos/2026-345.json
  • data/wwdc/videos/2026-347.json
  • data/wwdc/videos/2026-356.json
  • data/wwdc/videos/2026-357.json
  • data/wwdc/videos/2026-358.json
  • data/wwdc/videos/2026-359.json
  • data/wwdc/videos/2026-369.json
  • data/wwdc/videos/2026-370.json
  • data/wwdc/videos/2026-372.json
  • data/wwdc/videos/2026-375.json
  • data/wwdc/videos/2026-378.json
  • data/wwdc/videos/2026-379.json
  • data/wwdc/videos/2026-388.json
  • data/wwdc/videos/2026-389.json
  • data/wwdc/videos/2026-391.json
  • data/wwdc/videos/2026-393.json
  • data/wwdc/videos/2026-394.json
  • data/wwdc/videos/2026-397.json
  • data/wwdc/videos/2026-398.json
  • data/wwdc/videos/2026-399.json
  • data/wwdc/videos/2026-8001.json
  • data/wwdc/videos/2026-8002.json
  • data/wwdc/videos/2026-8003.json
  • data/wwdc/videos/2026-8004.json
  • data/wwdc/videos/2026-8005.json
  • data/wwdc/videos/2026-8006.json
  • data/wwdc/videos/2026-8007.json
  • data/wwdc/videos/2026-8009.json
  • data/wwdc/videos/2026-8010.json
  • data/wwdc/videos/2026-8011.json
  • data/wwdc/videos/2026-8012.json
  • data/wwdc/videos/2026-8013.json
  • data/wwdc/videos/2026-8014.json
  • data/wwdc/videos/2026-8015.json
  • data/wwdc/videos/2026-8016.json
  • data/wwdc/videos/2026-8017.json
  • data/wwdc/videos/2026-8018.json
  • data/wwdc/videos/2026-8120.json
  • data/wwdc/videos/2026-8121.json

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add WWDC 2026 videos

1 participant