-
Notifications
You must be signed in to change notification settings - Fork 1
M3U Playlists
The default, no-frills source: an M3U/M3U8 playlist, either fetched from a URL or read from a local file.
tvdinner https://example.com/playlist.m3u8
tvdinner ~/Downloads/my-playlist.m3u
A local file is told apart from a live channel URL by content, not
extension — the first few KB are sniffed for #EXTM3U. A bare direct
stream URL (no playlist wrapper at all) works too — tvdinner treats it
as a single-channel playlist:
tvdinner https://example.com/stream.m3u8
- Each entry's
group-titlebecomes that channel's group in the guide and in--listoutput. -
tvg-logo(if present) is used as the channel's logo; if a channel has none, tvdinner can optionally fall back to iptv-org's community logo database (--no-online-logosto turn that off). - The
#EXTM3Uheader's ownx-tvg-url/url-tvgattribute, if present, is used as the EPG source automatically — no--epgneeded. Pass--epg URLto override it (or to supply one when the playlist doesn't carry one at all).
-
--channel NAME(or a 1-based index) picks the starting channel; otherwise playback starts on the first one. -
--listprints every channel (name, group, URL) and exits without playing — handy for finding the exact name to pass to--channel, or a channel's display name for--epg-shifts. - Once playing, use the program guide
(
g) to switch channels without restarting.
By default, every entry plays as a live channel in the guide. If part
of your playlist is really on-demand content dumped into one or more
group-titles (a common shape for smaller IPTV providers who don't
run a real Xtream/Stalker panel), pull it out into the dedicated VOD
browser instead:
tvdinner playlist.m3u --vod-group Movies --vod-group "TV Shows"
See VOD Browsing & Resume for how the m
browser itself works. This is opt-in and repeatable — nothing changes
for an existing playlist unless you name a group.
New in 1.33.0.
The .deb and .rpm install a desktop entry
(/usr/share/applications/tvdinner.desktop) and an icon, registering
tvdinner as an opener for .m3u / .m3u8 files. It then appears in a
file manager's Open With menu, and in the "what should I do with
this file?" prompt a browser shows after downloading a playlist. The
MIME types covered are audio/x-mpegurl, audio/mpegurl,
application/x-mpegurl and application/vnd.apple.mpegurl.
The entry is Terminal=true: tvdinner is a keyboard-driven TUI, so the
desktop launches it inside your terminal emulator, with mpv's own video
window alongside. Exec is tvdinner %f — the file is passed exactly
as if you'd typed tvdinner /path/to/playlist.m3u.
It does not make itself the default handler — an .m3u is just as
often a local music playlist for an audio player — so the first
double-click still shows an application picker. To make tvdinner the
default and skip that dialog (1.34.0+):
tvdinner default-handler
That runs xdg-mime default tvdinner.desktop <the M3U MIME types> for
you, writing your own ~/.config/mimeapps.list (no root, nothing
system-wide) and verifying the result. Undo it from a file manager's
Open With dialog, or by editing that file. By hand:
xdg-mime default tvdinner.desktop audio/x-mpegurl audio/mpegurl application/x-mpegurl application/vnd.apple.mpegurl
xdg-mime query default audio/x-mpegurl # confirm: tvdinner.desktop
Running from source instead of a package? tvdinner default-handler
also drops a ~/.local/share/applications/tvdinner.desktop when it
can't find an installed one. By hand:
install -Dm644 data/tvdinner.desktop ~/.local/share/applications/tvdinner.desktop
install -Dm644 data/tvdinner.svg ~/.local/share/icons/hicolor/scalable/apps/tvdinner.svg
update-desktop-database ~/.local/share/applications
A plain https://…/playlist.m3u link in a browser is still the
browser's decision: it normally downloads the file, and then opening
that download goes through this entry. There's no handler hook for
https itself. On Android the same download-then-open path works with
mpv-android (or any player registered for the M3U MIME types) as the
handler.
A tvdinner: link does have a browser hook. The desktop entry claims
the x-scheme-handler/tvdinner scheme, and tvdinner unwraps a URL
argument of the form tvdinner:https://host/playlist.m3u to the plain
URL before loading it (url-tvg guide and all). So a
tvdinner:https://…/playlist.m3u link opens straight in tvdinner —
the browser hands the URL over after one remembered "Open tvdinner?"
prompt, nothing is saved to Downloads, and there's no application
picker. tvtimes' Play button emits one of these on desktop (see
tvtimes' Export Feeds).
tvdinner default-handler registers the scheme along with the .m3u
types.
Once loaded, an M3U playlist behaves exactly like every other live-channel source (Xtream, Stalker, HDHomeRun) — the program guide, favorites, recording, and scheduling all work identically regardless of where the channel list came from:
An M3U URL/path also works directly as a bookmark's
URL, so you don't have to retype it (or its --epg/--channel) every
time.