基于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 折腾的意义
- 国内提供的服务画质、音质不行,不能满足要求,比如4K,比如5.1杜比。
- 版权问题,不同的作品分布在不同的平台,还面临下架的风险。
- R18内容。
- 收集癖、仓鼠病、闲的蛋疼。
- 游戏平台:聚合PC、switch模拟器、Steam平台等游戏
0.5 方案执行进度
1. 准备工作:影视
1.1 找资源
1.1.1 WSL2(Ubuntu22)
win11 命令行安装基于WSL2的Ubuntu22
# 参考文档: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 阿里云盘参数
获取阿里云盘账号相关的信息
- 令牌:https://alist.nn.ci/zh/guide/drivers/aliyundrive.html#刷新令牌
- 刷新令牌:https://alist.nn.ci/tool/aliyundrive/request.html
- 根文件夹ID(必须是资料盘):https://alist.nn.ci/zh/guide/drivers/aliyundrive_open.html#根文件夹id
1.1.4 搭建小雅AList私服及自动化脚本
小雅官网 https://alist.xiaoya.pro/
# 一键安装
sudo bash -c "$(curl http://docker.xiaoya.pro/update_new.sh)"
# 安装过程中:依次输入阿里云盘的令牌、刷新令牌、根文件夹ID
# 安装完成后:需要重启容器
docker restart xiaoya
# 可以执行命令,查看启动过程
docker logs -f xiaoya
# 等需要1~5分钟时间,直到启动结束
# 宿主机可本地访问 http://127.0.0.1:5678/
# 若报错误(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 刮削前,命令行改名
# 对于剧集
# 方式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统计文件(夹)大小
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格式
# 在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中显示的频道名称
#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过程
//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
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
Extra Metadata Loader
需要提前下载ffmpeg-5.1.2 比如保存到D:\software\Playnite\MyTools\目录下
扩展设置-通用-Extra Metadata Loader-视频设置-视频下载设置
- ffmpeg路径:D:\software\Playnite\MyTools\ffmpeg-5.1.2\bin\ffmpeg.exe
- ffprobe路径:D:\software\Playnite\MyTools\ffmpeg-5.1.2\bin\ffprobe.exe
选游戏-右键-Extra Metadata-视频-视频-从steam下载。。。
DKG Theme Modifier
扩展设置-通用-DKG Theme Modifier
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 游戏资源网站
- Switch520: https://www.gamer520.com/ (PC,Switch游戏资源)
- flysheep: https://www.flysheep6.com/ (PC游戏,Switch游戏资源:部分免费)
- 老男人游戏网:https://www.oldmantvg.net/ (复古街机游戏:GBA、MD、FC等)
- 3DM: https://www.3dmgame.com/ (PC,汉化游戏)
- steamunlock: https://steamunlocked.net/ (Steam平台游戏)
- roms.fun: https://www.roms.fun/ (PC,Switch, 复古游戏)
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登录密码、账号名是计算机管理-本地用户和组-名称(不是全名)