Skip to content

feat(subtitles): add Netflix streaming subtitle adapter#1758

Open
semantic-craft wants to merge 1 commit into
mengxi-ream:mainfrom
semantic-craft:codex/streaming-adapters-netflix-live
Open

feat(subtitles): add Netflix streaming subtitle adapter#1758
semantic-craft wants to merge 1 commit into
mengxi-ream:mainfrom
semantic-craft:codex/streaming-adapters-netflix-live

Conversation

@semantic-craft

Copy link
Copy Markdown

Type of Changes

  • ✨ New feature (feat)

Description

This PR adds a small Netflix-first streaming subtitle adapter for Read Frog.

The earlier official-subtitle PRs (#1749 and #1751) explored official Chinese subtitle + official English subtitle comparison. That remains the direction I would like to support later, but keeping that full official-track alignment path under the 1000-line contributor threshold makes the implementation too compressed to preserve the feature well.

This PR therefore ships the smaller and repeatedly locally tested path first: keep the streaming player in charge of native captions, switch Netflix to an English caption track in the page world, capture the player-rendered English cue, and feed that source text through Read Frog's existing translation pipeline and overlay. The user-facing model is similar to Immersive Translate: official/player-rendered source text plus generated Chinese translation.

The implementation is still structured as a generic streaming adapter, not a Netflix-only one-off:

  • StreamingSiteAdapter describes site matching, track discovery, and optional live cue capture.
  • StreamingSubtitlesFetcher bridges those adapters into the existing subtitles fetcher contract.
  • UniversalVideoAdapter accepts live-capture-only subtitle sources and merges cue updates into the existing scheduler.
  • Netflix is the only enabled site in this PR.

To our knowledge, this is currently one of the only openly available implementations of this practical streaming-caption model in an open-source browser extension. The same adapter shape has also been repeatedly tested locally on HBO Max, but HBO Max support is intentionally left for a follow-up PR to keep this diff small and reviewable. Paramount can be added later through the same adapter path.

Current diff size is 630 changed lines (+603 / -27).

Related Issue

N/A

How Has This Been Tested?

  • Added unit tests
  • Verified through manual testing

Automated checks:

  • pnpm type-check
  • pnpm exec eslint ... on touched subtitle/interceptor files
  • SKIP_FREE_API=true pnpm exec vitest run ... targeted subtitle tests: 5 files / 84 tests
  • WXT_SKIP_ENV_VALIDATION=true pnpm build
  • Pre-push hook: lint, type-check, and full Vitest suite: 163 test files / 1399 tests passed

Manual checks:

  • Netflix watch page in the real local Chrome profile: Read Frog overlay showed English source text plus generated Chinese translation, while Netflix native timed text was hidden.
  • HBO Max was also locally checked against the same DOM live-caption approach, but is not included in this PR.

Screenshots

N/A

Checklist

  • I have tested these changes locally
  • I have updated the documentation accordingly if necessary
  • My code follows the code style of this project
  • My changes do not break existing functionality
  • If my code was generated by AI, I have proofread and improved it as necessary.

Additional Information

This PR withdraws the earlier official-track direction for now. The official Chinese subtitle + official English subtitle comparison feature can come back later as a separate, larger follow-up once it no longer needs to fit inside this small initial adapter PR.

@changeset-bot

changeset-bot Bot commented Jun 28, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: a29782b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@read-frog/extension Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions github-actions Bot added the feat label Jun 28, 2026
@github-actions github-actions Bot added contrib-trust:new PR author trust score is 0-29. needs-maintainer-review Contributor trust automation recommends maintainer review. labels Jun 28, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Contributor trust score

16/100 — New contributor

This score estimates contributor familiarity with mengxi-ream/read-frog using public GitHub signals. It is advisory only and does not block merges automatically.

Outcome

Score breakdown

Dimension Score Signals
Repo familiarity 0/35 commits in repo, merged PRs, reviews
Community standing 6/25 account age, followers, repo role
OSS influence 8/20 stars on owned non-fork repositories
PR track record 2/20 merge rate across resolved PRs in this repo

Signals used

  • Repo commits: 0 (author commits reachable from the repository default branch)
  • Repo PR history: merged 0, open 1, closed-unmerged 3
  • Repo reviews: 0
  • PR counted changed lines: 630 (+603 / -27)
  • Repo permission: read
  • Followers: 2
  • Account age: 129 months
  • Owned non-fork repos considered: max 102, total 208 (semantic-craft/mac-tmux-kit (102), semantic-craft/iOS-vibebuddy (100), semantic-craft/raycast-doubao-tts (3), semantic-craft/vscode-ai-voice-studio (1), semantic-craft/Raycast-Gemini-TTS (1), semantic-craft/snapocr-via-paddle (1), semantic-craft/famo-releases (0), semantic-craft/famoime-mac (0), semantic-craft/responsay-legal-skills (0), semantic-craft/responsay-releases (0), semantic-craft/tmux-cheatsheet (0), semantic-craft/raycast-responsay (0), semantic-craft/parlance (0), semantic-craft/vscode-english-coach (0), semantic-craft/raycast-skill-manager (0), semantic-craft/Raycast-Mimo-TTS (0), semantic-craft/raycast-tmux (0), semantic-craft/raycast-ai-voice-studio (0), semantic-craft/english-speaking-training-vscode (0), semantic-craft/raycast-ai-translate (0))

Policy

  • Low-score review threshold: < 30
  • Auto-close: score < 20 and counted changed lines > 1000
  • Migration-related files are excluded from the auto-close line count
  • Policy version: v1.2

Updated automatically when the PR changes or when a maintainer reruns the workflow.

@mengxi-ream mengxi-ream requested a review from taiiiyang June 28, 2026 18:20
@mengxi-ream

Copy link
Copy Markdown
Owner

@taiiiyang will review your PR in the future, but he's busy recently, so may take time

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

Labels

contrib-trust:new PR author trust score is 0-29. feat needs-maintainer-review Contributor trust automation recommends maintainer review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants