最佳私人影音实践教程

不管你是什么理由,只要喜欢,就可以开始折腾了。

你要做的准备

  • 家里有一台可以持续运行的设备(群晖、威联通或其他任意自组设备)
  • 这台设备上需要安装Docker(https://www.docker.com/)并启动
  • 找到一款适合自己的私人影音服务,推荐EMby
  • 了解PT站,有账号并拥有一款下载工具,qBittorrent或transmission
  • 玩豆瓣,喜欢从豆瓣选电影、电视剧

如果你已经做好了准备,就可以开始阅读下面的内容,让未来不必折腾,一步到位实现最佳私人观影体验,同时让你的家人也参与进来。本篇文章会以群晖的操作流程讲解如何一步一步使用机器人,如果你使用其他系统,原理是一样的。

功能介绍

movie-robot不是影音库,但它可以帮你管理影音库;它不是下载工具,但它可以对接下载工具;它不提供影音资源,但它可以整合搜索所有PT站点(陆续支持中);一次配置好,你可以当他不存在,就是你的一个影音助理,当然也可以是你家和你朋友的影音助理,它会悄悄的,满足好你所有的私人影音需求。

movie-robot不是热爱折腾人的玩具,因为配置一次,就不需要折腾了,一切从简,轻松的用起来,简单的背后,是AI。

Emby影音库

https://yee-1254270141.cos.ap-beijing.myqcloud.com/movie_robot/setup/Emby影音库.png

苹果生态Infuse

https://yee-1254270141.cos.ap-beijing.myqcloud.com/movie_robot/setup/苹果生态Infuse.png

接下来将会围绕日常生活中的使用场景,聊聊movie-robot能给你带来什么。。。先睡了,敬请期待。

Docker应用安装与启动

  1. 在群晖的套件中心,安装Docker应用并启动;https://yee-1254270141.cos.ap-beijing.myqcloud.com/movie_robot/setup/1、安装docker套件.png
  2. 打开Docker套件,点击注册表,搜索 movie-robot后双击开始下载。https://yee-1254270141.cos.ap-beijing.myqcloud.com/movie_robot/setup/2、搜索movie-robot.png
  3. 下载完成后,会在映像页面有提示。双击下好的镜像,就可以开始安装了https://yee-1254270141.cos.ap-beijing.myqcloud.com/movie_robot/setup/3、从映像中安装.png
  4. 映像可以理解为软件安装包,容器可以简化理解为应用进程,现在需要启动一个应用(容器)

容器的名称,是为了区分这个应用,并不重要,你认得出来就好。“使用高级权限执行容器”和启用资源限制可以都不用理会,机器人对内存和cpu的消耗非常低,每小时运行一次,平时基本不消耗内存和cpu。设置完名称不要着急走开,需要点击高级设置,对存储路径和环境变量做些改动。

容器的名称,是为了区分这个应用,并不重要,你认得出来就好。“使用高级权限执行容器”和启用资源限制可以都不用理会,机器人对内存和cpu的消耗非常低,每小时运行一次,平时基本不消耗内存和cpu。设置完名称不要着急走开,需要点击高级设置,对存储路径和环境变量做些改动。

  1. 勾选应用自动启动

如果应用执行过程中出现错误,或者nas关机重启,只要勾选了启用自动重新启动,就会帮你第一时间把机器人再起来,可以理解成开机自启动。

如果应用执行过程中出现错误,或者nas关机重启,只要勾选了启用自动重新启动,就会帮你第一时间把机器人再起来,可以理解成开机自启动。

  1. 为容器设置存储空间

这一步非常重要。容器是有独立的存储目录系统的,但dockier的容器删除存储系统也会被删除。所以一些应用的配置信息,和使用过程中产生的文件,还是适合独立保存在宿主机(nas)上,所以需要添加存储空间映射,把你宿主机的一个文件目录映射到容器上。

这一步非常重要。容器是有独立的存储目录系统的,但dockier的容器删除存储系统也会被删除。所以一些应用的配置信息,和使用过程中产生的文件,还是适合独立保存在宿主机(nas)上,所以需要添加存储空间映射,把你宿主机的一个文件目录映射到容器上。

  1. 通过添加文件夹按钮,选择本地文件夹

本地的文件目录没有任何要求,可以是你选择的任何位置。但这里我建议你把所有docker外挂的存储目录都统一放在一起,像我自己做了一个单盘ssd的docker目录,还有一个raid系统高可用的目录。

本地的文件目录没有任何要求,可以是你选择的任何位置。但这里我建议你把所有docker外挂的存储目录都统一放在一起,像我自己做了一个单盘ssd的docker目录,还有一个raid系统高可用的目录。

  1. 选好文件后,填写装载路径

这个没什么好说的,就是容器的路径,必须填写为/data。智能影音机器人,只需要映射这样一个目录,容器就可以正常工作了,目前不提供web页面,所以不需要映射端口。如果你使用群晖的系统,网络也不需要做过多调整,其他全默认即可,只需要提供一个激活码。

这个没什么好说的,就是容器的路径,必须填写为/data。智能影音机器人,只需要映射这样一个目录,容器就可以正常工作了,目前不提供web页面,所以不需要映射端口。如果你使用群晖的系统,网络也不需要做过多调整,其他全默认即可,只需要提供一个激活码。

  1. 在环境选项,设置激活码变量

滚动条拖到最下,在LICENSE_KEY的值输入你获得的激活码,然后就可以点击应用启动了。

滚动条拖到最下,在LICENSE_KEY的值输入你获得的激活码,然后就可以点击应用启动了。

  1. 初次启动,因为还没有进行豆瓣、bt下载工具、pt站等设置,所以是起不来的,容器状态为停止状态是正常的。

看到这个状态不要着急再次启动,可以先看看日志。

看到这个状态不要着急再次启动,可以先看看日志。

初次启动,因为现在还没做web页面,所以需要把你想让机器人做的事,在配置文件中配置好,容器第一次启动会拷贝一份默认的配置文件,到你刚才映射的文件目录中,就是第8步装载/data的真实路径。

初次启动,因为现在还没做web页面,所以需要把你想让机器人做的事,在配置文件中配置好,容器第一次启动会拷贝一份默认的配置文件,到你刚才映射的文件目录中,就是第8步装载/data的真实路径。

进入你刚才选择的目录,就可以看到app_config.yml配置文件了。这里不建议直接在群晖页面用群晖的在线记事本编辑,可能会有bug导致保存失败。建议你下载到本地,找个文本编辑工具进行修改后在上传到这个目录把文件覆盖掉。

进入你刚才选择的目录,就可以看到app_config.yml配置文件了。这里不建议直接在群晖页面用群晖的在线记事本编辑,可能会有bug导致保存失败。建议你下载到本地,找个文本编辑工具进行修改后在上传到这个目录把文件覆盖掉。

应用的配置文件基本篇

机器人的主要配置文件是yaml格式的,选用这种格式是因为写注释方便,但不好的地方是这种配置文件格式语法比较严格,如果改的过程中对缩进、空格弄错,可能程序启动会失败,所以修改前,建议把模版备份一下。爱学习的同学,也可以先找点YAML文件语法教程,简单学习一下,推荐一篇文章:https://zhuanlan.zhihu.com/p/145173920

默认配置 default

示例:

default:
  download_client: 'qbittorrent'
  rule_dir: '/app/rules'

defualt配置目前提供了两个配置项,分别控制BT下载工具类型和智能选中规则文件目录。

download_client

该值目前只支持两个 qbittorrent 或者 transmission 推荐安装使用qbittorrent下载工具,网上可以找到很详细的安装教程。这个值只是告诉机器人你要用什么下载工具,但下载工具具体的地址,登陆信息,还需要其他配置项详细配置,后面会介绍到。

rule_dir

这是个非常高级的配置选项,它指定的目录不是你nas上的目录,而是容器内的文件系统,/app 是容器内的应用工作目录,我在打包镜像的时候,会把我默认做好的一份收藏级别配置文件copy到/app/rules文件夹,同时也会拷贝到你装载的/data一份;如果你正确理解了这个概念,应该就能明白,你可以通过映射存储目录的方式,调整这个目录。也可以简单的换成/data/rules 这就可以让你轻松的通过访问第6步设置的文件目录,来编辑规则文件了。至于规则怎么玩,后面高阶玩法,会详细介绍,这个功能有一定的使用门槛,适合非常热爱折腾,又非常有想法的同学,编辑出自己喜欢的选种下载策略。

影音服务器配置 emby

emby:
  api_key: '去emby申请apikey复制到这里'
  host: '192.168.1.111'
  https: false
  port: 8096

影音机器人工作的基础,就是你需要有一个影音配置,目前机器人已经和Emby影音系统很好的集成,推荐使用。

api_key

Emby提供了官方API系统,你需要到管理页面去生成一个api key配置

Emby管理页面,点击API密钥

Emby管理页面,点击API密钥

这页面是我已经配置好的,你可能没有,需要点击新API密钥

这页面是我已经配置好的,你可能没有,需要点击新API密钥

名字不重要,输入完点确定就可以看到上面图生成好的密钥,复制到配置文件中

名字不重要,输入完点确定就可以看到上面图生成好的密钥,复制到配置文件中

api_key: '04db545efce346b6a847db397aa80558'

host

访问你Emby服务的Host地址,是个IP,也可以是个域名,但一定不要带http://这些信息

host: '192.168.1.111'

https

你的emby是否https协议访问,true 或 false

port

服务端口

下载工具配置 qbittorrent 或 transmission

qbittorrent:
  need_login: false
  url: '<http://192.168.1.11:8080/>'
  username: admin
  password: admin
transmission:
  host: '192.168.1.10'
  port: 49166
  username: 'user'
  password: 'pass'

qbittorrent

need_login

这是一个比较重要的参数,很多同学会因为这个设置启动出错。有些同学的qbit在内网访问是不需要账号密码登陆的,有些默认情况是需要强制登陆的。值为 true 表示需要登陆,值为false表示不用自动登陆。

url

qbit下载工具的地址设置比较特殊,需要提供一个完整的带端口的访问地址,这里一定要注意别写错

url: '<http://192.168.1.11:8080/>'

username和password

登陆qbit的账号和密码

transmission

host

干净的host地址,ip或者域名都可以,不要带http://这些信息

  host: '192.168.1.10'

port

访问端口

username和password

登陆TR的账号和密码

PT站点配置 pt

当前支持MTeam、HDSky、北洋园 三个PT站点,这里只是PT站的基础登陆信息配置,建议你有几个配几个,用不用得到,后面会有其他参数决定。

pt:
  mteam:
    type: 'cookie'
    cookie: '可以用chrome浏览器获得访问网站的cookie'
  hdsky:
    type: 'cookie'
    cookie: '可以用chrome浏览器获得访问网站的cookie'
  tjupt:
    type: 'cookie'
    cookie: '可以用chrome浏览器获得访问网站的cookie'

mteam、hdsky、tjupt这三个值是绝对不能变的,记住他们,后面配置还会用到。如果你只有其中一个pt站,那你可以把其他几个配置项都删了,精简配置文件。

type

这个是登陆PT站点的方式,目前建议大家全部使用cookie方式,可以保护自己的账号密码不泄漏

cookie

这个就是访问PT站点时的cookie字符串,我以chrome为例,教大家如何获得cookie

找到菜单里的开发者工具

找到菜单里的开发者工具

打开开发者工具后,刷新换一下页面,就可以看到所有的访问细节,找到第一个页面的访问。就可以看到cookie信息,把它复制到配置文件中,大概是这样,值复制值,不要复制错

打开开发者工具后,刷新换一下页面,就可以看到所有的访问细节,找到第一个页面的访问。就可以看到cookie信息,把它复制到配置文件中,大概是这样,值复制值,不要复制错

cookie: 'cf_clearance=aidhf8r23rbkasdjbfhlaisdjo3iourihby9832A_Uvs-1641017926-0-150; tp=akdjfbhhshif4e9782ojasfjj18a12ZTc0MmNkNg%3D%3D'

电影来源信息配置 sources

如果你有学习了YAML基本语法,你应该可以看得出,这是一个数组配置。但目前仅仅支持一种type,后面会扩展。所以目前,如果不理解语法,就按给出的示范改值。

sources:
  - type: 'douban_wish'
    args:
      turn_page: true
      types: 'wish;do'
      user_domain: 'user1;'
      within_days: 365

type

当前只有一种值 douban_wish 也就是豆瓣电影想看列表

args

任务源配置参数,不同任务源可能会不一样,但目前是一样的。

turn_page

是否自动翻页,true 或 false,豆瓣的用户电影列表页(https://movie.douban.com/people/dirain/wish)是需要翻页的,如果你添加了很多信息,一定需要翻页,所以这里设置true吧,好像没什么设置false的理由,但留着这个配置,是怕有DIY大神,什么都想自己调。

types

豆瓣的电影列表有三种分类,想看(wish)、在看(do)、看过(collect),这个配置,就是决定机器人,都监听你的哪些分类。如果有多个,用;号隔开

user_domain

这个就是豆瓣的用户id了,你可以只配置自己的,也可以用;号隔开,配置多个,把你家人的,都加进来。

获取豆瓣id的方法,不熟悉的同学可以在app上找

https://yee-1254270141.cos.ap-beijing.myqcloud.com/movie_robot/setup/豆瓣1、打开账号设置.jpg

https://yee-1254270141.cos.ap-beijing.myqcloud.com/movie_robot/setup/豆瓣 2、拿到豆瓣id.jpg

配置示范

user_domain: '48382384'

within_days

豆瓣老用户,可能在想看里加了很多电影,都已经年久失修了,所以提供了这个参数,只获取近x天加入想看的电影,避免首次使用过度下载。值为数字,默认近365天

任务设置 tasks

任务设置是机器人的核心,是组织自动化工作流的重要配置,当前提供了两种任务类型,sync_movies 和 download_free_torrent。这是一个数组配置,不需要的任务可以删掉。

tasks:
  - type: 'download_free_torrent'
    args:
      #获取免费种子的pt站
      search_pt: 'mteam;hdsky'
      #免费种子提交到pt后的保存路径
      save_path: '/downloads'
      result_page_limit: 1
      min_free_hours: 2
      max_free_hours: 24

智能同步电影设置 sync_movies

这个任务目前主要负责监听豆瓣来源的电影,有新增就自动开始下载。

- type: 'sync_movies'
    args:
      source: 'douban_wish'
      #设置搜索的pt站,支持多pt同时搜索
      search_pt: 'mteam;hdsky'
      #选择最佳种子的规则配置,系统默认提供了collection规则,是清晰度优先
      score_rule: 'collection'
      #某资源首个种子过去多久,才进行检索下载;有些资源刚出来质量并不好,等几个小时,发种人变多,才有的选;
      debut_passed_hours: 6
      #是否自动删除下载的种子,如果不删除,将保留在你映射的/data目录内
      delete_torrent: false
      #注意,只有极少数情况下,豆瓣的电影需要登陆后才可以访问获取,比如https://movie.douban.com/subject/23748525/ 电脑不登陆访问不了;可以留空,等遇到报错再配置;
      cookie: ''
      save_mode:
        - type: 电影
          cate: 纪录片
          my_cate: 纪录片
        - type: 剧集
          cate: 纪录片
          my_cate: 纪录片
        - type: 剧集
          cate: 动画
          my_cate: 儿童动画片
        - cate: 真人秀
          my_cate: 综艺
        - cate: 脱口秀
          my_cate: 综艺
        - type: 电影
          my_cate: 电影
          path: '/downloads/电影'
        - type: 剧集
          my_cate: 电视节目

source

电影信息来源,目前支持 douban_wish,也就是在上面sources配置的

search_pt

当有新的电影加入想看时,去检索的PT站,多个用;号隔开,值就是在pt配置项设置的;当提供多个pt站配置时,会将每个PT站的搜索结果拿到,对其进行打分,按选种规则,选出最适合你的资源,最佳的种子只会挑第一个,整个选择过程你不需要干预,什么都不用管。

score_rule

暂时系统只提供了 collection 对应的就是rules文件夹下的规则文件,这个详细玩法,后面专门的板块介绍。

debut_passed_hours

如果一个电影刚上映还没有资源,新种首发的时候,往往质量不一定是最好的,没有选择余地,这个值是一个数字,代表小时数,意为首发种子时间超过N小时,才会执行选中下载工作,等上几个小时,才有更好的选择空间。

delete_torrent

/data映射的目录里会创建一个torrent文件夹,所有选择的种子,下载好都会保存到此目录,如果该值为true,种子提交到下载工具后会自动删除,如果为false则保留不删除。

cookie

豆瓣部分电影,有个奇怪的设置,不登陆无法获取电影的详细信息。比如这部电影https://movie.douban.com/subject/23748525/ 电脑和手机上,不登陆都无法访问。所以遇到这种情况的时候,需要电脑登陆豆瓣,把cookie设置进去,流程和设置PT站一样。

save_mode

保存模式,这是大家最想个性化定制的部分,也是让你后面省心不用管理电影的关键。首先save_mode的值,是一个数组,可以多条,也可以只有一条,如下:

多条

	save_mode:
        - type: 电影
          cate: 纪录片
          my_cate: 纪录片
        - type: 剧集
          cate: 纪录片
          my_cate: 纪录片

一条

	save_mode:
        - type: 电影
          cate: 纪录片
          my_cate: 纪录片

不了解yaml语法的你,应该也明白了以 - 开始的记录,就代表一条规则配置。

每一条规则,有四个参数,分别是type、cate、my_cate、path。type是资源类型(电影、剧集),cate是资源的分类,这个分类可能有很多种,以豆瓣的为准。下面两张图,可以看懂机器人如何识别type和cate的值

这个示范可以得出,type为电影 cate为剧情、喜剧、爱情,这部电影有3个分类

这个示范可以得出,type为电影 cate为剧情、喜剧、爱情,这部电影有3个分类

type为剧集 cate为剧情,这部剧集只有1个分类

type为剧集 cate为剧情,这部剧集只有1个分类

上面两张图,说明了程序如何识别type,只有电影、剧集 两种,但cate,豆瓣会有很多,我也没仔细分析过有多少,我自己的分类,不会分这么细节。

总结来说,type和cate,是以豆瓣为准,不会使用pt站的,因为pt站的分类太乱。知道了type和cate的来源,my_cate和path就比较容易理解了。

type

值就是电影或剧集,也可以不配置type,但要指定cate,二选一

cate

值就是豆瓣的类型,只能为1个,暂不支持多个;也可以不配置cate,但要指定type,二选一

my_cate

这是个qbit下载工具中的分类概念,不使用qbit下载工具的同学可以跳过my_cate这个配置项,也可以从你配置文件里删掉,网络上可以检索到很多qbit分类管理的功能。但简单来说,qbit中分类一定程度上就代表了下载路径,下载种子的时候,只需要选择分类,就会保存到分类对应的路径中。

web页面分类区域,点击右键,就可以管理分类信息

web页面分类区域,点击右键,就可以管理分类信息

分类的名称,你可以随便设置,动漫、电影、电视剧、综艺,什么都可以。保存路径,必须是你qbit映射到你宿主机的路径,如果你用的是docker镜像,这部分不多介绍了,大家自己学习。

分类的名称,你可以随便设置,动漫、电影、电视剧、综艺,什么都可以。保存路径,必须是你qbit映射到你宿主机的路径,如果你用的是docker镜像,这部分不多介绍了,大家自己学习。

那么相应的,my_cate的值,就是你在新建时设置的分类名。使用my_cate就可以不设置path(可以删),如下

				- cate: 真人秀
          my_cate: 综艺
        - cate: 脱口秀
          my_cate: 综艺

path

保存路径,这个就是当选到合适的种子开始提交到下载工具下载时,提交给下载工具的保存路径。qbit和tr都支持此设置

理解了配置项是干什么的,接下来通过几个实战配置,说说分类逻辑。一句话:当要下载的资源type和cate等于配置规则的值时,使用my_cate和path的配置提交下载。

示范1:当资源为电影时,保存到qbit为电影的分类

				- type: 电影
          my_cate: 电影

示范2:当资源为剧集时,保存到qbit为电视剧的分类

				- type: 剧集
          my_cate: 电视剧

示范3:当资源为电影并且类型为喜剧时,保存到tr的/video/电影/喜剧 目录

				- type: 电影
					cate: 喜剧
          path: '/video/电影/喜剧'

示范4:当类型为脱口秀,不管是剧集还是电影时,保存到qbit的综艺目录

				- cate: 脱口秀
          my_cate: '/video/综艺'
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注

×
订阅图标按钮