什么是 Kyoo ?
Kyoo
是一款开源媒体浏览器,可让您流式传输电影、电视节目或动漫。它是 Plex
、Emby
或 Jellyfin
的替代品。Kyoo
是从头开始创建的,它不是一个分叉。一切都将永远是免费和开源的。
软件特性:
管理您的电影、电视剧和动漫
自动下载元数据
Transmux/Transcode
文件以使它们在每个平台上可用
具有权限系统的账户系统
使用嵌入字体(ass
、subrip
或 vtt
)本地处理字幕
完全免费,无需互联网即可工作(当元数据已下载时)
老苏试用的感受,Kyoo
目前还是比较初级,要想取代 Plex
、Emby
或 Jellyfin
,还有蛮远的路需要走,一方面是文档比较匮乏,另一方面感觉功能还是比较少
官方提供了观看无版权电影的现场演示:https://kyoo.zoriya.dev/
准备工作 API key
这一步是必须的;
为了检索元数据,Kyoo
将需要与外部服务进行通信。目前来说,就是the movie database
。为此,您需要获取 API
密钥。
为此,需要访问 themoviedb.org
:https://www.themoviedb.org/ 并创建一个帐户,然后转到 https://www.themoviedb.org/settings/api ,复制 API
密钥,并将其粘贴到 env.txt
文件的 THEMOVIEDB_APIKEY=
后面。
电影
这一步不是必须的,只是老苏最近硬盘里正好找不到电影,所以只能临时下一部用来测试;
下载了一部官网上看到的 Tears of Steel
这部片子可以在 https://mango.blender.org/download/ 下载,不仅有不同的分辨率,还提供了不同语言的字幕
当然你也可以下载老苏在阿里云盘上分享的文件,https://www.aliyundrive.com/s/21uG7scZoj2 ,不过老苏只下了 1080P
的版本
安装 在群晖上以 Docker 方式安装。
Kyoo
用到 4
个自己官方的镜像,但 tags
最新版本不是常用的 latest
,而是 master
还是那句话,如果镜像拉不动,去docker
代理网站试试 :https://dockerproxy.com/
其中:
zoriya/kyoo_back:master
:后端服务;
zoriya/kyoo_front:master
:前端页面;
zoriya/kyoo_scanner:master
:应该是扫描服务,估计是检测文件变化的;
zoriya/kyoo_transcoder:master
:应该是转码服务;
nginx
: Web
服务;
postgres:15
:数据库服务;
docker-compose.yml 将下面的内容保存为 docker-compose.yml
文件,该文件描述了 Kyoo
的不同服务、它们应该在哪里下载以及它们的启动顺序。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 version: "3.8" services: back: image: zoriya/kyoo_back:master container_name: kyoo_back restart: on-failure env_file: - ./env.txt depends_on: postgres: condition: service_healthy volumes: - ./kyoo:/kyoo front: image: zoriya/kyoo_front:master container_name: kyoo_front restart: on-failure environment: - KYOO_URL=${KYOO_URL:-http://back:5000} - PUBLIC_BACK_URL=${PUBLIC_BACK_URL} scanner: image: zoriya/kyoo_scanner:master container_name: kyoo_scanner restart: on-failure depends_on: back: condition: service_healthy env_file: - ./env.txt environment: - KYOO_URL=${KYOO_URL:-http://back:5000} volumes: - ${LIBRARY_ROOT}:/video transcoder: image: zoriya/kyoo_transcoder:master container_name: kyoo_transcoder restart: on-failure env_file: - ./env.txt volumes: - ${LIBRARY_ROOT}:/video - ${CACHE_ROOT}:/cache - ./metadata:/metadata ingress: image: nginx container_name: kyoo_nginx restart: on-failure environment: - PORT=8901 - FRONT_URL=http://front:8901 - BACK_URL=${KYOO_URL:-http://back:5000} volumes: - ./nginx.conf:/etc/nginx/templates/kyoo.conf.template:ro depends_on: - back - front ports: - "8901:8901" postgres: image: postgres:15 container_name: kyoo_postgres restart: on-failure env_file: - ./env.txt volumes: - ./data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL" , "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}" ] interval: 5s timeout: 5s retries: 5
这个文件中,唯一可能需要修改的就是本地端口 8901
,如果不冲突的话建议就不要改了;
nginx.conf 将下面的内容保存为 nginx.conf
,该文件描述了访问 Kyoo
的 URL
时将调用哪个服务。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 server { listen ${PORT} ; root /usr/share/nginx/html; location / { proxy_pass ${FRONT_URL} ; proxy_http_version 1 .1 ; proxy_set_header Upgrade $http_upgrade ; proxy_set_header Connection "upgrade" ; } location /api/ { proxy_pass ${BACK_URL} /; proxy_http_version 1 .1 ; proxy_set_header Upgrade $http_upgrade ; proxy_set_header Connection "upgrade" ; } }
这个文件中,最好什么都别改;
env.txt 将下面的内容保存为 env.txt
,该文件包含其中的服务 docker-compose.yml
将读取的所有配置选项。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 LIBRARY_ROOT =./videoCACHE_ROOT =./tmp/kyoo_cacheLIBRARY_LANGUAGES =enLIBRARY_IGNORE_PATTERN =.*/[dD]ownloads?/.*AUTHENTICATION_SECRET =4 c@mraGB!KRfF@kpS8739y9FcHemKxBsqqxLbdR?KYOO_APIKEYS =t7H5!@4 iMNsAaSJQ49pat4jprJgTcF656ifDEFAULT_PERMISSIONS =overall.readUNLOGGED_PERMISSIONS =overall.readTHEMOVIEDB_APIKEY =PUBLIC_BACK_URL =http://localhost:5000 KYOO_URL= KYOO_LIBRARY_ROOT =/videoPOSTGRES_USER =KyooUserPOSTGRES_PASSWORD =KyooPasswordPOSTGRES_DB =kyooDBPOSTGRES_SERVER =postgresPOSTGRES_PORT =5432
这个文件中,THEMOVIEDB_APIKEY=
必须把前面在 themoviedb.org
网站获取到的 API
秘钥外,其他的不建议改,除非你清楚每个字段的含义;
老苏没有找到官方的关于环境变量的说明,所以也不清楚LIBRARY_LANGUAGES
是不是支持中文
然后执行下面的命令
1 2 3 4 5 6 7 8 9 10 mkdir -p /volume1/docker/kyoo/{data,kyoo,metadata,video,tmp/kyoo_cache}cd /volume1/docker/kyoodocker-compose --env-file env.txt up -d
运行 在浏览器中输入 http://群晖IP:8901
就能看到主界面
如果你还没有在 video
目录中放入电影,你会看到一个空空的主界面
如果你已经拷入了 Tears of Steel
,则会显示电影的封面
进入详情页面
可以直接播放
支持选择不同的分辨率
右上角可以注册用户
但是登录之后,并没有什么功能,连基本的权限都还不具备
这也就是开始老苏说的还比较初级的原因,但是从长远看,还是值得期待的,毕竟又多了一个选择
参考文档
zoriya/Kyoo: A portable and vast media library solution. 地址:https://github.com/zoriya/kyoo
Kyoo 地址:https://kyoo.zoriya.dev/browse
ReDoc 地址:https://kyoo.zoriya.dev/api/doc/index.html?url=/api/swagger/v1/swagger.json
Download | Tears of Steel 地址:https://mango.blender.org/download/