Skip to content

fix(linux): bundle full GStreamer codec suite for YouTube playback#434

Merged
koala73 merged 1 commit intomainfrom
fix/linux-appimage-youtube-codecs
Feb 26, 2026
Merged

fix(linux): bundle full GStreamer codec suite for YouTube playback#434
koala73 merged 1 commit intomainfrom
fix/linux-appimage-youtube-codecs

Conversation

@koala73
Copy link
Owner

@koala73 koala73 commented Feb 26, 2026

Summary

  • AppImage only bundled gst-plugins-base and gst-plugins-good — missing H.264, AAC, AV1, and GL video sink codecs
  • YouTube's MSE player checks MediaSource.isTypeSupported() → WebKitGTK delegates to GStreamer → no compatible decoders found → "Your browser can't play this video"
  • Add gst-plugins-bad, gst-plugins-ugly, gst-libav, and gst-gl to CI install so bundleMediaFramework: true includes them in the AppImage

Test plan

  • Build new AppImage with these packages and verify YouTube plays on fresh Ubuntu 25

AppImage only bundled gst-plugins-base and gst-plugins-good, missing
H.264/AAC (gst-libav), x264 (plugins-ugly), AV1 (plugins-bad), and
GL video sink (gst-gl). YouTube's MSE player checks codec support
via MediaSource.isTypeSupported() — WebKitGTK delegates to GStreamer
and reports no compatible decoders, showing "can't play this video".

Add plugins-bad, plugins-ugly, gst-libav, and gst-gl to CI install
so bundleMediaFramework includes them in the AppImage.
@vercel
Copy link

vercel bot commented Feb 26, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
worldmonitor Building Building Preview, Comment Feb 26, 2026 6:07pm
worldmonitor-finance Building Building Preview, Comment Feb 26, 2026 6:07pm
worldmonitor-happy Building Building Preview, Comment Feb 26, 2026 6:07pm
worldmonitor-startup Building Building Preview, Comment Feb 26, 2026 6:07pm

Request Review

@chatgpt-codex-connector
Copy link

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@koala73 koala73 merged commit 53a00f8 into main Feb 26, 2026
4 of 6 checks passed
koala73 added a commit that referenced this pull request Feb 26, 2026
…plugins

The AppImage bundles GStreamer from CI (Ubuntu 24.04, GStreamer 1.24).
Previously, host plugin directories (/usr/lib/gstreamer-1.0/) were
appended as fallback. This caused ABI version mismatches — host plugins
compiled against a different GStreamer version fail with undefined symbol
errors (gst_util_floor_log2, mpg123_open_handle64, etc.), leaving WebKit
without usable codecs for YouTube playback.

Since PR #434 installs the full GStreamer codec suite on CI, the AppImage
is fully self-contained. Remove the host fallback and block host plugin
scanning to prevent ABI conflicts across distro GStreamer versions.
koala73 added a commit that referenced this pull request Feb 26, 2026
…plugins (#444)

The AppImage bundles GStreamer from CI (Ubuntu 24.04, GStreamer 1.24).
Previously, host plugin directories (/usr/lib/gstreamer-1.0/) were
appended as fallback. This caused ABI version mismatches — host plugins
compiled against a different GStreamer version fail with undefined symbol
errors (gst_util_floor_log2, mpg123_open_handle64, etc.), leaving WebKit
without usable codecs for YouTube playback.

Since PR #434 installs the full GStreamer codec suite on CI, the AppImage
is fully self-contained. Remove the host fallback and block host plugin
scanning to prevent ABI conflicts across distro GStreamer versions.
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.

1 participant