首页 > 解决方案 > WebKit2.WebView(和 Gnome 浏览器)不播放 YouTube 视频

问题描述

在 Python GTK+ 3 应用程序中,我有一个简单的 WebKit2.WebView(无自定义)来显示一组 html 字符串(无实时浏览)。html 包含一个带有一些 youtube 视频的 javascript 灯箱。当我打开它们时,会显示 youtube 视频框,但无法播放内容,并且出现黑屏提示(“发生错误。请稍后再试。(播放 ID:...”)
。网络:https ://i.redd.it/gwqswatndiy11.png

然后我尝试使用 Gnome Web 浏览器(Linux Mint 18.3 上的 v 3.18.11)[基于 WebKit] 浏览 YouTube 网站,每个视频都出现了同样的问题。
当然,一切都适用于其他浏览器(Chromium 和 Firefox)。
此外,如果我在 PyGtk+ 3 应用程序中使用 WebKit1 而不是 WebKit2,则一切正常。 所以我认为问题在于Webkit2选项配置。

有谁知道如何解决这个问题?

这是我的代码的摘录。如您所见,我已经尝试设置一些选项,但没有任何效果。
[旁注:browser_settings.set_enable_media(True)给我错误AttributeError: 'Settings' object has no attribute 'set_enable_media';我不明白为什么因为在文档中存在该方法]

import gi
gi.require_version('Gtk', '3.0')
gi.require_version('GtkSource', '3.0')
gi.require_version('WebKit2', '4.0')
from gi.repository import Gtk, GtkSource, GLib, WebKit2

self.webview = WebKit2.WebView.new()
browser_settings = self.webview.get_settings()
browser_settings.set_property('javascript-can-access-clipboard', bool(True))

# browser_context = self.webview.get_context()
# cookie_manager = browser_context.get_cookie_manager()
# cookie_manager.set_accept_policy(WebKit2.CookieAcceptPolicy.ALWAYS)
# browser_settings.set_enable_xss_auditor(False)
# browser_settings.set_allow_universal_access_from_file_urls(True)
# browser_settings.set_allow_file_access_from_file_urls(True)
# browser_settings.set_enable_media(True)
# browser_settings.set_enable_media_capabilities(True)
# browser_settings.set_enable_media_stream(True)
# browser_settings.set_enable_mediasource(True)
# browser_settings.set_media_playback_allows_inline(True)

self.webview.set_settings(browser_settings)

标签: webkitgtk3pygtkpygobjectgnome-3

解决方案


我最初也无法在 Ubuntu Budgie 20.10 上的 Gnome Web (3.38.1) 上播放 Youtube 视频。但我能够让它发挥作用。

我检查了软件,搜索了“gstreamer”,发现大多数 GStreamer 编解码器已经安装。

通过安装“ffmpeg plugin for GStreamer”和“GStreamer WPEWebKit plugin”,我能够制作 Youtube 视频。


推荐阅读