基于win11的Emby、Playnite搭建家庭影音娱乐方案

0. 概述

0.1 Emby效果















0.2 playnite效果




0.3 软件清单及教程


流媒体:Emby (分Server端、安卓端、安卓TV端、iOS端,PC最好使用网页端)

  • 电影/电视剧/动画:找资源→重命名→刮削→导入Emby资源库
  • 音乐:找资源→刮削→导入Emby资源库
  • 电视源:找电视源→有效性检查→匹配频道ID→emby添加指南数据源→emby上传电视源

游戏聚合:Playnite

  • Switch模拟器:YUZU、ryujinx(直接找整合包:省去配置固件等操作)
  • steam:Steam、SteamCommunity_302(steam的局部魔法)

0.4 折腾的意义

  1. 国内提供的服务画质、音质不行,不能满足要求,比如4K,比如5.1杜比。
  2. 版权问题,不同的作品分布在不同的平台,还面临下架的风险。
  3. R18内容。
  4. 收集癖、仓鼠病、闲的蛋疼。
  5. 游戏平台:聚合PC、switch模拟器、Steam平台等游戏

0.5 方案执行进度

  • 电影/剧集/电视直播/音乐/MV
  • PC游戏/Switch模拟器/Steam
  • 整理文件-照片、视频、电子书、笔记、项目文档、项目代码

1. 准备工作:影视

1.1 找资源

1.1.1 WSL2(Ubuntu22)

win11 命令行安装基于WSL2的Ubuntu22

bash 复制代码
# 参考文档:https://learn.microsoft.com/zh-cn/windows/wsl/install-manual
# 参考文档:https://learn.microsoft.com/zh-cn/windows/wsl/install
# 启用适用于 Linux 的 Windows 子系统
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用虚拟机功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 更新wsl(需要魔法)
wsl --update
# 将 WSL 2 设置为默认版本
wsl --set-default-version 2
# 查看当前linux发行版本(需要魔法)
wsl --list --online 
![](https://img2023.cnblogs.com/blog/2015404/202312/2015404-20231202231303008-223685623.png)
# NAME是列linux发行版名称
# 指定linux发行版名称并安装(需要魔法)
wsl --install -d 发行版名称
# 检验当前WSL版本和linux发行版本
wsl -l -v
# 注销不要的发行版
wsl --unregister 发行版名称
# 更新wsl到预览版
wsl --update --pre-release

将wsl的Ubuntu网络模式设置为host-only模式(镜像模式:和宿主机一样的ip,宿主机用localhost可以访问虚拟机的服务) 在C:\Users\用户名目录下面,创建一个配置文件 .wslconfig

[experimental]
autoMemoryReclaim=gradual
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

1.1.2 Docker Desktop

访问https://www.docker.com/下载安装Docker Desktop on Windows并注册登录

安装时必须选上use WSL 2 instead of Hyper-V(recommended)

安装后登录sign in(需要魔法)

设置-General-Use the WSL2 based Engine

设置-Resources-WSL integration-Enable integration with additional distros-打开Ubuntu-22.04-apply&restart

1.1.3 阿里云盘参数

获取阿里云盘账号相关的信息

1.1.4 搭建小雅AList私服及自动化脚本

小雅官网 https://alist.xiaoya.pro/

bash 复制代码
# 一键安装
sudo bash -c "$(curl http://docker.xiaoya.pro/update_new.sh)"
# 安装过程中:依次输入阿里云盘的令牌、刷新令牌、根文件夹ID
bash 复制代码
# 安装完成后:需要重启容器
docker restart xiaoya
# 可以执行命令,查看启动过程
docker logs -f xiaoya 
# 等需要1~5分钟时间,直到启动结束
# 宿主机可本地访问 http://127.0.0.1:5678/ 
bash 复制代码
# 若报错误(sock相关)修改sock权限,不报错则跳过
sudo chmod 666 /var/run/docker.sock
# 若其他相关问题
sudo vi /etc/xiaoya/mytoken.txt
sudo vi /etc/xiaoya/myopentoken.txt
sudo vi /etc/xiaoya/temp_transfer_folder_id.txt

客户端使用webdav访问

webdav协议

地址: 私服IP/dav

端口: 5678

用户: guest

密码: guest_Api789

1.2 重命名

1.2.1 刮削前,命令行改名

bash 复制代码
# 对于剧集
# 方式1:按季放在不同目录SXX、每个目录内带有集数(偶尔无效)
# 方式2:都放在一个目录下命名为SxxExx方式
盘符:
cd 资源目录
rename 资源文件名01.mp4 S01E01.mp4
rename 资源文件名02.mp4 S01E02.mp4
...
# 对于剧集特别篇的集数 查询网站上https://www.themoviedb.org/
rename OVA.mp4 S00E01.mp4

1.2.2 使用powershell统计文件(夹)大小

bat 复制代码
Get-ChildItem -Directory | ForEach-Object {
    $folderPath = $_.FullName
    $folderSize = (Get-ChildItem -Recurse $folderPath | Measure-Object -Property Length -Sum).Sum
    $folderSizeInGB = $folderSize / 1GB
    Write-Output "$folderPath#$folderSizeInGB GB"
}

1.3 刮削

1.3.1 TinyMediaManager

  • 注册TMDB网站会员并拿到API密钥:https://www.themoviedb.org/
  • 访问https://dnschecker.org/#A/api.themoviedb.org 找到Shenzhen, China 点load 查看IP地址,并根据结果修改本机hosts
  • 安装并配置tmm、扫描资源、刮削
  • 注意剧集命名必须包含 SXXEXX (S为季默认01、E为集数、S00代表特别篇)、电影和剧集刮削建议手动、剧集的每集数据自动刮削即可

2.准备工作:音乐

2.1 找资源

2.1.1 酷我音乐PC端(开心版)

  • 歌单导入:以酷狗为例,酷狗app分享歌单到新浪微博,复制器中的链接,粘贴到酷我app的导入歌单
  • FLAC下载:在pc端登录同一账号下载

2.2 刮削

2.2.1 MusicTag

点击添加目录、定位酷我音乐下载目录

全选导入的歌曲列表 点击自动匹配标签(魔法棒) 勾选所有信息 点确定开始刮削

然后将刮削好的直接保存到音乐文件夹中 并用Emby加载

歌词乱码问题:emby好像只能显示UTF8编码的歌词 歌词可能为GB2312、GBK、GB18030等编码方式、需要批量转为UTF8格式

bash 复制代码
# 在WSL2 Ubuntu上安装iconv工具并用iconv转码
iconv -f GB2312 -t UTF-8 源文件 >目标文件

3. 准备工作:电视直播

3.1 找电视源

需要魔法,google搜索电视源并按最近一周筛选结果(扩展名为m3u或m3u8)

3.2 检查电视源是否有效

下载IPTV Checker:检查电视源,选择online,去掉offline的频道,将所有online的频道保存为新的电视源m3u8文件

VLC media player:查看直播(在iptv checker的settings中设置vlc的安装路径,在列表中右键,可以选择play channel)

3.3 匹配频道ID

匹配电视源种的频道的ID,以便关联节目预告

m3u和m3u8电视源文件格式

  • group-title 电视频道的分类标签
  • tvg-logo 电视频道logo
  • ,后接在emby中显示的频道名称
m3u8 复制代码
#EXTM3U
#EXTINF:-1 group-title="央视" tvg-logo="xxxxxxxxxxxxxxxxxxxx/CCTV1.png",CCTV1
直播地址
#EXTINF:-1 group-title="央视" tvg-logo="https://epg.112114.xyz/logo/CCTV2.png",CCTV2
直播地址
#EXTINF:-1 group-title="央视" tvg-logo="https://epg.112114.xyz/logo/CCTV3.png",CCTV3
直播地址

http://epg.51zmt.top:8000/网站上传IPTV Checker保存的m3u8文件,匹配后,下载m3u文件

  • tvg-id 作为关联节目预告的频道ID
  • tvg-name 作为关联节目预告的频道名称
  • tvg-log 补充部分logo

4. Emby

Emby:https://emby.media/

4.1 破解

请支持正版软件授权,本文仅介绍解锁原理及思路。

4.1.1 方法1. 直接搜索Emby开心版

4.1.2 方法2. 伪站破解Emby(需要路由器支持修改host)

解锁原理及思路:

  • 基于Nginx建立一个假的mb3admin.com网站
  • 通过在路由器上配置自定义host==,将局域网内设备的mb3admin.com对应的DNS记录解析为伪站的IP地址。
  • Emby客户端或服务器在当前局域网内进行解锁。

以下为伪站破解Emby过程

json 复制代码
//https://mb3admin.com/admin/service/registration/validateDevice
{"cacheExpirationDays": 365,"message": "Device Valid","resultCode": "GOOD"}
//https://mb3admin.com/admin/service/registration/getStatus
{"deviceStatus":"0","planType":"Lifetime","subscriptions":{}}
//https://mb3admin.com/admin/service/registration/validate
{"featId":"MBSupporter","registered":true,"expDate":"2030-01-01","key":114514}

nginx.conf

conf 复制代码
 server {
        listen 443 ssl;
        server_name mb3admin.com;
        ssl_certificate /volume1/web/mb3admin.com/mb3admin.com.cert.pem;
        ssl_certificate_key /volume1/web/mb3admin.com/mb3admin.com.key.pem;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        location = /webdefault/images/logo.jpg {
            alias /usr/syno/share/nginx/logo.jpg;
        }
        location @error_page {
            root /usr/syno/share/nginx;
            rewrite (.*) /error.html break;
        }
        location ^~ /.well-known/acme-challenge {
            root /var/lib/letsencrypt;
            default_type text/plain;
        }
        location / {
            rewrite ^ / redirect;
        }
        location ~ ^/$ {
            rewrite / https://$host:5001/ redirect;
        }
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Headers *;
    add_header Access-Control-Allow-Method *;
    add_header Access-Control-Allow-Credentials true;
location /admin/service/registration/validateDevice {
    default_type application/json;
  return 200 '{"cacheExpirationDays": 7,"message": "Device Valid","resultCode": "GOOD"}';
}
location /admin/service/registration/validate {
    default_type application/json;
  return 200 '{"featId":"","registered":true,"expDate":"2099-01-01″,"key":""}';
}
location /admin/service/registration/getStatus {
    default_type application/json;
  return 200 '{"deviceStatus":"","planType":"","subscriptions":{}}';
}
        }

推荐GMCert.org https://www.gmcert.org/subForm

选择RSA算法,2048位加密,主题名称/CN填入"mb3admin.com"

"选择CA"条目的最后面有个"↓",点击下载CA证书

打开高级选项,选择普通证书

主题备用名称填

DNS.1=mb3admin.com

DNS.2=*.mb3admin.com

密钥用途:数字签名 | 加密密钥 | 加密数据

扩展密钥用途:服务器认证 | 客户端认证

证书有效天数:824

证书链选项中勾选"自动包含CA证书链"

点击"签发证书",下载密钥和SSL证书

将密钥和SSL证书上传到VPS,将CA证书安装到PC/iOS设备/Android设备等。

4.2 设置字幕下载

注册网站https://www.opensubtitles.com/

4.3 设置媒体库

4.3.1 通用设置

  • 文件夹:添加本地文件夹或者网络路径
  • 首选元数据下载语言:chinese simplified
  • 国家:china
  • 首选图像下载语言:chinese simplified
  • 启用实时监控
  • 元数据读取器勾选Nfo
  • xx 元数据下载器等:取消勾选Emby刮削相关的所有选项
  • 元数据保护程序勾选Nfo
  • 视频预览缩略图
  • 字幕下载:下载语言-勾选chinese simplified
  • 字幕下载器:
    • 勾选Open Subtitles
    • 勾选"如果默认音轨与下载语言匹配,则跳过"
    • 勾选"如果视频内嵌字幕,则跳过"

4.3.2 "电视节目"类型的特殊设置

  • 简介标记
    • 生成简介标记:作为计划任务

4.3.3 "家庭视频与照片"类型的特殊设置

  • 启用照片
  • 视频 的图像获取器:勾选screen grabber
  • 视频预览所缩略图:
    • 生成视频预览缩略图:作为计划任务
    • 缩略图间隔:章节标记

4.4 设置电视直播

添加指南数据源:国家选中国、指南源选xmlTV、文件或URL填写http://epg.51zmt.top:8000/e.xml(指南数据:即节目预告)

添加电视源(选M3U):文件或URL点右侧放大镜按钮,上传本地m3u8文件到emby,刷新指南数据即可

5.游戏

5.1 游戏聚合

Playnite

  • Library 游戏库插件:根据需要,选择被管理的游戏平台安装
  • Metadata Sources 数据来源(刮削)插件:
    • PC游戏:Metadata Local(内置主流的6个数据源,steam有中文)、PCGaming Wiki(更全、没有中文)
    • 模拟器(很少有中文):IGDB(Switch)、PSN(PS)、Gametdb(Wii和gamecube)
    • GalGame:Metadata Local、DLsite、VNDB(更全、没有中文)
  • Generic 通用插件:
    • Extra Metadata Loader+Extra Metadata Fullscreen Mode Helper :提供logo和游戏宣传片视频的展示
    • ludusavi:备份游戏存档
    • ScreenshotsVisualizer:截图工具
    • is there any deal:游戏折扣信息、联动平台愿望单
    • how long to beat:了解通关时间(需要账号)
    • success story:各平台成就系统
    • checkDLC:获取 DLC 列表
    • Emulation Toolbox:模拟器
    • PlayState :挂起和恢复你的游戏
  • Themes 主题插件:
    • 桌面主题:Seaside
    • 全屏主题:Playnite Modern UI

5.2 Switch模拟器

5.2.1 YUZU整合包

  • 直接添加游戏即可,右键查看属性可知安装的补丁、UPD、DLC等
  • 更新UPD、资料片DLC(*.nsp):选择Switch游戏,点文件-安装文件到NAND
  • 补丁(压缩包):选择Switch游戏,右键-打开MOD数据位置

遇到nsz格式,需要安装NSCB魔改工具:nsz转xci或nsp

5.3 Steam

需要安装steamcommunity_302(小范围魔法) 否则无法打开Steam

5.4 其他

5.4.1 游戏资源网站

5.4.2 游戏启动遇到的问题

问题1:育碧游戏,提示应用程序无法正常启动,错误代码0xc0000142

访问https://zh-cn.ubisoft.com/ubisoftconnect 安装Ubisoft Connect

其他软件

Kodi

  • Kodi先设置字体为Arai 在改中文 否则乱码
  • kodi设置加载本地数据、不刮削
  • kodi可安装皮肤 arctic.horizon2
  • kodi可使用smb加载windows上的共享资源:要在控制面板开启windows的smb功能、设置windows登录密码、账号名是计算机管理-本地用户和组-名称(不是全名)

AList

AList文档
AList仓库