Skip to content

feat: add MPEG-DASH (MPD) video playback support#286

Merged
KolbyML merged 1 commit intoKolbyML:masterfrom
naokiiida:feat/dash-mpd-playback
Apr 20, 2026
Merged

feat: add MPEG-DASH (MPD) video playback support#286
KolbyML merged 1 commit intoKolbyML:masterfrom
naokiiida:feat/dash-mpd-playback

Conversation

@naokiiida
Copy link
Copy Markdown
Contributor

Summary

  • Add dash.js to handle MPEG-DASH video playback for anime extensions returning MPD sources (e.g. Anime Onsen)
  • The player previously only supported HLS via hls.js, causing MEDIA_ERR_SRC_NOT_SUPPORTED for DASH content
  • DASH sources are detected via containerHint from the API or .mpd URL pattern, and played directly from CDN with custom header injection

Changes

  • AnimeEpisode.tsx: Extended VideoResponse type with containerHint, ffmpegSourceUrl, headers. Added isDashSource detection and routes DASH sources to the original CDN URL
  • AnimeVideoPlayer.tsx: Integrated dash.js MediaPlayer with RequestModifier for custom headers and proper cleanup
  • package.json: Added dashjs@5.1.1

Test plan

  • Verified DASH playback with Anime Onsen extension (Yomi no Tsugai ep1)
  • Verify HLS sources still work with other extensions
  • Test on mobile/Android webview
  • Test with Brave browser

🤖 Generated with Claude Code

The anime video player only supported HLS via hls.js, causing playback
failure for extensions (e.g. Anime Onsen) that return DASH/MPD sources.
Add dash.js to handle MPD manifests directly from CDN, with custom
header injection for CDN authentication.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Owner

@KolbyML KolbyML left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you for this contribution

@KolbyML KolbyML merged commit b76cafe into KolbyML:master Apr 20, 2026
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.

2 participants