开源媒体浏览器Kyoo

news2025/6/8 7:07:09

在这里插入图片描述

什么是 Kyoo ?

Kyoo 是一款开源媒体浏览器,可让您流式传输电影、电视节目或动漫。它是 PlexEmbyJellyfin 的替代品。Kyoo 是从头开始创建的,它不是一个分叉。一切都将永远是免费和开源的。

软件特性:

  • 管理您的电影、电视剧和动漫
  • 自动下载元数据
  • Transmux/Transcode 文件以使它们在每个平台上可用
  • 具有权限系统的账户系统
  • 使用嵌入字体(asssubripvtt)本地处理字幕
  • 完全免费,无需互联网即可工作(当元数据已下载时)

老苏试用的感受,Kyoo 目前还是比较初级,要想取代 PlexEmbyJellyfin,还有蛮远的路需要走,一方面是文档比较匮乏,另一方面感觉功能还是比较少

官方提供了观看无版权电影的现场演示: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:应该是转码服务;
  • nginxWeb 服务;
  • postgres:15:数据库服务;

docker-compose.yml

将下面的内容保存为 docker-compose.yml 文件,该文件描述了 Kyoo 的不同服务、它们应该在哪里下载以及它们的启动顺序。

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,该文件描述了访问 KyooURL 时将调用哪个服务。

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 将读取的所有配置选项。

# Useful config options
LIBRARY_ROOT=./video
CACHE_ROOT=./tmp/kyoo_cache
LIBRARY_LANGUAGES=en

# A pattern (regex) to ignore video files.
LIBRARY_IGNORE_PATTERN=.*/[dD]ownloads?/.*

# The following two values should be set to a random sequence of characters.
# You MUST change thoses when installing kyoo (for security)
AUTHENTICATION_SECRET=4c@mraGB!KRfF@kpS8739y9FcHemKxBsqqxLbdR?
# You can input multiple api keys separated by a ,
KYOO_APIKEYS=t7H5!@4iMNsAaSJQ49pat4jprJgTcF656if#J3

DEFAULT_PERMISSIONS=overall.read
UNLOGGED_PERMISSIONS=overall.read

THEMOVIEDB_APIKEY=
PUBLIC_BACK_URL=http://localhost:5000



# Following options are optional and only useful for debugging.

# To debug the front end, you can set the following to an external backend
KYOO_URL=
# The library root inside the container.
KYOO_LIBRARY_ROOT=/video

# Database things
POSTGRES_USER=KyooUser
POSTGRES_PASSWORD=KyooPassword
POSTGRES_DB=kyooDB
POSTGRES_SERVER=postgres
POSTGRES_PORT=5432

# vi: ft=sh

这个文件中,THEMOVIEDB_APIKEY= 必须把前面在 themoviedb.org 网站获取到的 API 秘钥外,其他的不建议改,除非你清楚每个字段的含义;

老苏没有找到官方的关于环境变量的说明,所以也不清楚LIBRARY_LANGUAGES 是不是支持中文

然后执行下面的命令

# 新建文件夹 kyoo 和 子目录
mkdir -p /volume1/docker/kyoo/{data,kyoo,metadata,video,tmp/kyoo_cache}

# 进入 kyoo 目录
cd /volume1/docker/kyoo

# 将 docker-compose.yml 、 env.txt 、 nginx.conf 放入当前目录

# 一键启动
docker-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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1027158.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录Day1 数组基础

本文详细说明和思路来源于: 代码随想录 视频讲解: 手把手带你撕出正确的二分法 | 二分查找法 | 二分搜索法 | LeetCode:704. 二分查找_哔哩哔哩_bilibili Leetcode T 704 题目链接 704. 二分查找 - 力扣(LeetCode) 题目概述1: 思路: 1.因…

Python 数据分析学习路线

Python 数据分析学习路线 第一阶段:Python语言基础第二阶段:数据采集和持久化第三阶段:数据分析第四阶段:数据挖掘与机器学习书籍介绍参与方式 第一阶段:Python语言基础 在学习数据分析之前,首先需要掌握P…

机器人还可以支持呼入?

呼入机器人是指一种能够接听电话并进行自动语音交互的人工智能软件系统。与传统的人工客服不同,呼入机器人可以根据预设的逻辑和语音识别技术进行自动回复和处理来电者的问题或需求,无需人工干预。这种软件通常能够帮助办公室工作人员更加高效地完成日常…

Ae 效果:CC Mr. Mercury

模拟/CC Mr. Mercury Simulation/CC Mr. Mercury CC Mr. Mercury(CC 水银先生)主要用于创建类似水银等液态金属或油漆等的动态效果。 CC Mr. Mercury 本质上模拟一个发射水银粒子的椭圆形发生器,基于源图像的像素创建自带动画的效果&#xff…

Flask 入门教程

文章目录 QuickStart1.安装2.flask 应用示例 开发1.路由(Routing)请求方法(Http Method)变量规则末尾正斜杠Url 构造 2.HTML渲染3.获取请求参数(Accessing Request Data)上下文局部变量请求对象&#xff08…

景联文科技牵头制定的《信息技术 可扩展的生物特征识别数据交换格式 第4部分:指纹图像数据》国家标准启动会暨研讨会在杭州顺利召开

2023年9月19日,由杭州景联文科技有限公司牵头制定的《信息技术 可扩展的生物特征识别数据交换格式 第4部分:指纹图像数据》国家标准启动会暨起草组工作会议在杭州顺利召开。 来自中国电子技术标准化研究院、熵基科技、名光微电子科技、广州麦仑信息科技等…

分享从零开始学习网络设备配置--任务3.4 利用单臂路由实现部门间网络互访

任务描述 某公司的管理员对部门划分了VLAN后,发现两个部门之间无法通信,但有时两个部门的员工需要进行通信,管理员现要通过简单的方法来实现此功能。划分VLAN之后, VLAN之间是不能通信的,使用路由器的单臂路由功能可以…

负载均衡中间件---Nginx

一.nginx的好处 学习 Nginx 对于一个全栈开发者来说是非常有价值的,下面是一些学习 Nginx 的原因和好处: 反向代理和负载均衡:Nginx 是一个高性能的反向代理服务器,可以用于将客户端请求转发给多个后端服务器,实现负…

Mysql和ES、Redis数据同步方案汇总

文章目录 前言 一、数据同步方案1.同步双写2.异步双写([MQ](https://so.csdn.net/so/search?qMQ&spm1001.2101.3001.7020)方式)3.基于Mysql表定时扫描同步4.基于[Binlog](https://so.csdn.net/so/search?qBinlog&spm1001.2101.3001.7020)实时同…

MySQL常用配置详解

目录 一、MySQL 查看配置信息二、MySQL 查看服务器当前运行状态的信息三、MySQL 常用配置详解1、mysql(使用mysql命令登录数据库时的默认的设置)2、client (客户端默认设置内容)3、mysqld(服务端端配置) 四…

Elasticsearch 的页面工具kibana中 dev tool 菜单使用

首先来到kibana 页面,找到 dev tool 菜单,选择Console ​​​​​​es的页面工具kibana中 dev tool 菜单使用_kibana中的dev tools 在哪里_nandao158的博客-CSDN博客 1、查所有的索列表 GET /_cat/indices?v 或者 GET /_cat/indices 2、创建索引 PO…

【VSCode设置单个子文件时不要平级显示】

打开VSCode 的菜单 【文件】》【首选项】》【设置】,搜索输入【compact】,然后将 Explorer:Compact Folder的勾选去掉即可

Python数据容器——列表、元组、字符串、集合、字典

作者:Insist-- 个人主页:insist--个人主页 本文专栏:Python专栏 专栏介绍:本专栏为免费专栏,并且会持续更新python基础知识,欢迎各位订阅关注。 目录 一、了解数据容器 1. 为什么需要数据容器&#xff1f…

vscode在mac上保存项目文件提示保存失败

原因:可能是由于创建命令时使用“sudo xxxx” 解决办法: 进入访达–》选中简介–》打开锁–》选中自己用户–》输入密码–》结束 注意:由于这个设置只适用于本目录,内部目录还是有权限限制,解决办法点边上的小点–》…

Linux 文件 目录管理

Linux 文件 基本属性 Linux 系统是一种典型的多用户系统,为了保护系统的安全性,不同的用户拥有不同的地位和权限。Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。 可以使用命令:ll 或 ls –…

科目二倒车入库

调整座位和后视镜 离合踩到底大腿小腿成130-140 上半身90-100 座椅高度能看到前方全部情况 后视镜调节到能看到后门把手,且后门把手刚好在后视镜上方边缘、离车1/3处。 保持直线: 前进: 车仪表盘中央的原点和地面上的黄线擦边&#xff…

Android 10.0 系统开启和关闭黑白模式主题功能实现

1. 概述 在10.0的rom系统开发定制化中,在系统SystemUI的下拉状态栏中,产品开发功能需求要求添加黑白模式功能开关的功能,就是打开黑白模式,系统颜色就会变成黑白颜色, 关闭黑白模式开关系统就会变成彩色模式,所以就需要了解下系统是怎么设置黑白模式和彩色模式的,然后添…

现代循环神经网络-门控循环单元(GRU)

理论 门控隐状态 门控循环单元与普通的循环神经网络之间的关键区别在于: 前者支持隐状态的门控。 这意味着模型有专门的机制来确定应该何时更新隐状态, 以及应该何时重置隐状态。 这些机制是可学习的,并且能够解决了上面列出的问题。 例如&…

WPF 控件专题 RadioButton样式一

RadioButton样式示例 Style样式修改如下&#xff1a;通过改下RadioButton的ControlTemplate&#xff0c;修改控件所呈现的外观形状和颜色&#xff1b;通过IsChecked属性触发器样式变化。 <UserControl.Resources><Style x:Key"defaultRadioStyle" TargetT…

Ubuntu中安装Anaconda 如何将 路径导入为全局变量

第一步&#xff1a;将你的anaconda 路径复制下来&#xff0c;在终端输入对应路径。 echo export PATH"/home/你的用户名/anaconda3/bin:$PATH" >> ~/.bashrc 第二步&#xff1a;在终端输入下面命令或者重启系统。 source ~/.bashrc 在对应的anaconda安装目…