-
Notifications
You must be signed in to change notification settings - Fork 15
video services
Shadowsun™ edited this page Sep 20, 2026
·
1 revision
Services live under lua/mediaplayer/services/ and are registered through MediaPlayer.RegisterService in sh_services.lua.
Each concrete service has an Id (e.g. yt, sc) and optional Base (often browser or base).
| Id (typical) | Name | Notes |
|---|---|---|
yt |
YouTube | Browser-based; client metadata prefetch |
bili |
Bilibili | VOD / related variants |
sc |
SoundCloud | Audio |
twl / twitch |
Twitch | Streams / VODs subject to embed rules |
dm |
Dailymotion | |
ia |
Internet Archive | archive.org |
gd |
Google Drive | Where embedding works |
odysee |
Odysee | |
af |
Audio file | Direct .mp3, .ogg, etc. |
h5v / resource |
HTML5 / resource media | Direct video/image-style playback |
www |
Webpage | Only when mediaplayer_allow_webpages is enabled |
| shoutcast | Shoutcast | Streaming radio-style |
Exact Ids are defined on each service’s SERVICE.Id. Abstract bases (base, browser) are not selectable by users.
Availability depends on embed policy, CEF codecs, and network access from clients.
URL
→ MediaPlayer.GetServiceByUrl / GetMediaForUrl
→ SERVICE:Match(url)
→ service:New(url) -- instance with urlinfo, Data(), etc.
→ metadata (server HTTP and/or client prefetch)
→ queued on a MediaPlayer instance
→ CLIENT plays via browser panel or HTML5 element
MediaPlayer.ValidUrl(url) returns whether any non-abstract service matches.
Spatial media players only accept a subset of service Ids (see Spatial Media).