You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在树莓派上通过Docker容器+Python+Selenium无头模式运行Netflix影片?

树莓派Docker容器中无头Firefox播放Netflix的问题排查方案

一、容器环境基础配置检查

  • 必须用适配ARM架构的Firefox镜像,比如arm32v7/firefox,x86镜像在树莓派上会直接出现兼容性问题。
  • Dockerfile里加这行装依赖:apt-get install -y libx11-xcb1 libdbus-glib-1-2 libgtk-3-0 libasound2 libpulse0,这些是Firefox无头模式和媒体播放的必需库。
  • 严格匹配Firefox和geckodriver版本,geckodriver要下ARM架构的,别拿x86的凑数。

二、Widevine相关进阶修复

  • 从树莓派本地已装的Firefox里复制libwidevinecdm.so到容器内/usr/lib/firefox/browser/plugins/目录,或者从ARM版Chrome里提取,注意版本要和容器内Firefox兼容。
  • Selenium启动Firefox时强制开Widevine:
    from selenium.webdriver.firefox.options import Options
    options = Options()
    options.headless = True
    options.set_preference('media.gmp-widevinecdm.enabled', True)
    options.set_preference('media.gmp-widevinecdm.visible', True)
    driver = webdriver.Firefox(options=options)
    
  • 给libwidevinecdm.so设权限chmod 755,确保Firefox运行用户能读能执行。

三、无头模式特殊配置

  • 加窗口大小参数,避免无头渲染异常:
    options.add_argument('--width=1920')
    options.add_argument('--height=1080')
    
  • 禁用GPU加速,树莓派ARM的GPU支持有限:
    options.add_argument('--disable-gpu')
    options.add_argument('--disable-software-rasterizer')
    
  • 开媒体自动播放:
    options.set_preference('media.autoplay.default', 0)
    options.set_preference('media.autoplay.enabled.user-gestures-needed', False)
    

四、Chrome无头替代方案(Firefox实在不行试试这个)

  • 用ARM版Chromium镜像arm32v7/chromium,搭配对应版本的ARM版chromedriver。
  • Chrome无头配置示例:
    from selenium.webdriver.chrome.options import Options
    options = Options()
    options.headless = True
    options.add_argument('--no-sandbox')
    options.add_argument('--disable-dev-shm-usage')
    options.add_argument('--disable-gpu')
    options.add_argument('--enable-widevine-cdm')
    options.add_argument('--autoplay-policy=no-user-gesture-required')
    driver = webdriver.Chrome(options=options)
    
  • 容器里装chromium-codecs-ffmpeg-extra,补全媒体编解码器:apt-get install -y chromium-codecs-ffmpeg-extra

五、Docker容器权限调整

  • 运行容器时加--privileged(谨慎用,或者按需授权),避免权限不足导致硬件/库访问失败。
  • 或者在Dockerfile里设USER root,确保文件读写和库加载的权限足够。

内容的提问来源于stack exchange,提问作者Jeff Santos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 15:25:40