Skip to content
/ livi Public

Minimalistic video player for mobile devices using GTK4, libadwaita and gstreamer

License

Notifications You must be signed in to change notification settings

agx/livi

Repository files navigation

Light Video

Minimalist video player using GTK4, libadwaita and GStreamer. The main purpose is to make playing hardware accelerated videos with e.g. hantro and OpenGL simple.

It supports:

  • Inhibiting suspend/idle when playing video
  • Stopping video playback on (i.e. power button toggled) blank
  • Registering as default video player in GNOME control center
  • A MPRIS interface to control the playback
  • Resuming position on previously played videos
  • Playing videos from popular online sites using yt-dlp as "preprocessor".

Playing video in landscape fullscreen mode

Building

Flatpak build:

# Intial setup
flatpak install --user org.gnome.Sdk//master
flatpak install --user org.gnome.Platform//master
# Build
flatpak-builder --force-clean  --install --user _build/ org.sigxcpu.Livi.json

Regular build:

# Intial setup
apt build-dep .
# Build
meson setup . _build
meson compile -C _build

Using

To play a video using the preprocessor use -Y:

livi -Y <url>

For this to work yt-dlp needs to be able to fetch a combined audio and video stream. If this is possible for a given URL with the current yt-dlp configuration can be checked with:

yt-dlp --list-formats <url>

At least one of the listed format there needs to contain a video and audio stream as you'd otherwise get video playback without audio when playing the URL in livi.

You can wiggle yt-dlp option to see if you can find a combined format. Common options there are --format-sort and --extractor-args. Once you've found suitable options you can put them into `~/.config/yt-dlp.conf. E.g.

cat <<EOF > ~/.config/yt-dlp.conf
--format-sort=codec:h264,codec:vp8
--extractor-args=youtube:player-client=android
EOF

About

Minimalistic video player for mobile devices using GTK4, libadwaita and gstreamer

Topics

Resources

License

Stars

Watchers

Forks