Skip to content

Conversation

@zoriya
Copy link
Contributor

@zoriya zoriya commented Oct 7, 2025

Summary

Initial implementation for the web. I decided to use shaka player to support more advanced features (like hls/dash/ads/drm...)

It's missing some features for now (will implement before marking this pr as ready):

  • external subtitles support
  • metadata notification
  • error handling

Missing features i don't plan on implementing:

  • buffer config
  • drm
  • ads

Please ignore biome/nix stuff, i'll remove them once the pr is ready & fix style issues.

Motivation

Fixes #4605

Note that i found some missing APIs while implementing this:

  • missing mimeType in source -> added but only used on the web
  • missing startTime
  • missing audio/video selections ->
  • missing metadata in text tracks (default, forced, cc, codecs)
  • multi-source setup (give two uris + mimetype for the same video & let the player determine which one it can play)
  • multi audios
  • multi variants (hls/dash only)
  • next/prev custom actions for the media notification

Test plan

For now i'm just making this PR to share the progress and the initial ideas, my next step is to try those changes with the example app and then with kyoo.

@zoriya
Copy link
Contributor Author

zoriya commented Oct 13, 2025

I switched the implementation to videojs instead of shaka because it was a pain to switch between html5 video for mp4/basic videos & shaka for hls/dash.
videojs offers a unifed api for that and offer even more features through plugins.

@zoriya
Copy link
Contributor Author

zoriya commented Oct 20, 2025

I added new public APIs that are only used for the web right now:

  • mimeType in the source.
  • getAvailableAudioTracks(), selectAudioTrack(track | null) & get selectedAudioTrack() on the player
  • getAvailableVideoTracks(), selectVideoTrack(track | null) & get selectedVideoTrack() on the player
  • getAvailableQualities(), selectQuality(track | null), get currentQuality() & get autoQualityEnabled() on the player
  • onQualityChange, onVideoTrackChange & onAudioTrackChange events

@zoriya zoriya force-pushed the feat/web branch 5 times, most recently from 682b59a to 79f243c Compare October 21, 2025 21:28
@zoriya zoriya marked this pull request as ready for review October 24, 2025 12:49
@zoriya
Copy link
Contributor Author

zoriya commented Feb 9, 2026

hey @KrzysztofMoch any update on getting this reviewed or if I need to do something to move this PR forward?

I've been using my branch for the past few months.

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

Labels

None yet

Projects

Status: To Triage

Development

Successfully merging this pull request may close these issues.

[Alpha v7] Missing Feature - Basic Web Support

2 participants