lala.im:PeerTube4.0配置使用YT-DLP

運維技術·lala.im · 2022-01-02 · 84 人浏览

原文地址:https://lala.im/8262.html,請支持原作者!該處僅作轉載。

只有4.0版本才可以使用yt-dlp,如果不是4.0版本需要先升级,升级步骤可以参考官方的发布记录:
https://github.com/Chocobozzz/PeerTube/releases/tag/v4.0.0
我并不是升级上来的,我是直接搭建的新版本,之前那个实例因为某些原因不打算维护了。。
以前我就发现一个问题,从油管导入视频非常慢,几分钟的视频需要导入很长时间才能成功,如果导入的视频时长久一点就根本不能导入成功了。与这个问题一致:
https://github.com/Chocobozzz/PeerTube/issues/4515
大概原因就是youtube-dl没人维护了,油管对这个工具做了限制吧。。解决办法也很简单,换成yt-dlp就好了。这里记录一下docker安装的peertube替换youtube-dl转而使用yt-dlp的步骤。
我直接新装的4.0版本没在config目录发现有production.yaml,只有一个local-production.json。。
local-production.json是用来保存管理员通过后台配置的一些选项的,按道理来说应该还有一个production.yaml才对。。我也不知道这什么情况。。如果你有production.yaml,那就直接照着官方给的配置来即可:
https://github.com/Chocobozzz/PeerTube/blob/develop/config/production.yaml.example#L445
如果没有production.yaml就把配置直接写进local-production.json吧,反正我现在是这样做的,不知道在管理员后台保存新的配置后会不会被覆写。
编辑配置文件:

nano /opt/peertube/docker-volume/config/local-production.json

默认的配置是:

...
  "import": {
    "videos": {
      "concurrency": 5,
      "http": {
        "enabled": true
      },
      "torrent": {
        "enabled": true
      }
    }
  },
...

改为:

...
  "import": {
    "videos": {
      "concurrency": 5,
      "http": {
        "enabled": true,
        "youtube_dl_release": {
          "url": "https://api.github.com/repos/yt-dlp/yt-dlp/releases",
          "name": "yt-dlp"
        }
      },
      "torrent": {
        "enabled": true
      }
    }
  },
...

之后还需要在容器内安装python3,因为现在官方这个基于debian11的镜像内没有yt-dlp需要的python3,只有2.7。。
进入容器:

docker exec -it peertube_peertube_1 /bin/bash

安装python3:

apt -y update
apt -y install python3

从debian11开始需要安装python-is-python3来做一个符号链接,让python这个命令直接调用python3,否则yt-dlp还是是会用python2.7来运行,这样yt-dlp会报错还是运行不了的:

apt -y install python-is-python3

需要注意的是这种直接进到容器里面安装软件包的方法不是最优解,如果镜像更新了你安装的这些包又得重装一遍。
这只能算是临时解决问题,要彻底解决的话,要么等官方把python3这些环境打包好,要么就只能自己去build镜像了。
如果要自己build镜像的话可以看这个文档,你需要修改dockerfile来安装python3的环境:
https://docs.joinpeertube.org/install-docker?id=build
最后测试一下,原来导入不了的视频现在可以正常导入了:

範例

運維技術 lala.im
Theme Jasmine by Kent Liao