基于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 方案执行进度
- 电影/剧集/电视直播/音乐/MV
- PC游戏/Switch模拟器/Steam
- 整理文件-照片、视频、电子书、笔记、项目文档、项目代码
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

# 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
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登录密码、账号名是计算机管理-本地用户和组-名称(不是全名)
AList
基于win11的Emby、Playnite搭建家庭影音娱乐方案的更多相关文章
- 基于物联网操作系统HelloX的智慧家庭体系架构
基于物联网操作系统HelloX的智慧家庭体系架构 智慧家庭是物联网的一个分支应用,是一个被广泛认同的巨大IT市场空间.目前市场上已经有很多针对智慧家庭的产品或解决方案,但与移动互联网不同,智慧家庭至今 ...
- 基于认证的代理平台搭建配置squid-20130730
基于认证的代理平台搭建配置squid-20130730 功能:通过squid代理实现 (1)基于用户名密码认证的出口ip路由选择 (2)基于client源ip的出口ip路由选择 (3)基于连接本机ip ...
- 基于springboot+bootstrap+mysql+redis搭建一套完整的权限架构【六】【引入bootstrap前端框架】
https://blog.csdn.net/linzhefeng89/article/details/78752658 基于springboot+bootstrap+mysql+redis搭建一套完整 ...
- Ubuntu 基于Docker的TensorFlow 环境搭建
基于Docker的TensorFlow 环境搭建 基于(ubuntu 16.04LTS/ubuntu 14.04LTS) 一.docker环境安装 1)更新.安装依赖包 sudo apt-get up ...
- Reactjs-generator-cli 一款基于Ink构建用于快速搭建React应用的CLI scaffolding工具
Reactjs-generator-cli 一款基于Ink构建用于快速搭建React应用的CLI scaffolding工具 A simple CLI for scaffolding React.js ...
- VLOG丨树莓派Raspberry Pi 3安装PLEX并挂载USB硬盘打造最牛的微型家庭影音服务器2018
视频介绍 树莓派3安装目前最流行的PLEX服务器,实现既能最大限度降低功耗,也能随时随地观看分享影片. 一.在树莓派下安装PLEX媒体服务器 1.在终端,将你的树莓派更新至最新 sudo apt up ...
- EOS Dapp开发(1)-基于Docker的开发环境搭建
随着EOS主网的上线,相信基于EOS的Dapp开发会越来越多,查阅了很多资料相关的开发资料都不是很多,只能自己摸索,按照网上仅有的几篇教程,先git clonehttps://github.com/E ...
- Windows下基于http的git服务器搭建-gitstack
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Windows下基于http的git服务器搭建-gitstack 本文地址:http: ...
- 基于Python的Appium环境搭建合集
自动化一直是测试圈中的热聊,也是大家追求的技术方向.在测试中,往往回归测试也是测试人员的“痛点”.对于迭代慢.变更少的功能,就能用上自动化来替代人工回归,减轻工作量. 问题 在分享环境搭建之前,先抛出 ...
- 基于微软hyper-v虚拟化服务器搭建方法和步骤整理
基于Microsoft基础设施私有云计算搭建 摘要:私有云是指组织机构建设的专供自己使用的云平台,它所提供的服务不是供他人使用,而是供自己的内部人员或分支机构使用,不同于公有云,私有云部署在企业内部网 ...
随机推荐
- Vue3 vite:is a JavaScript file. Did you mean to enable the 'allowJs' option?
描述 今天在vue3+vite下进行打包时,突然vscode报了一个error. 大概的意识是询问是否启用"allowJS"选项,因为该文件在程序内是指定用于编译的根文件. 提示信 ...
- 2023-08-22:请用go语言编写。给定一个长度为N的正数数组,还有一个正数K, 返回有多少子序列的最大公约数为K。 结果可能很大,对1000000007取模。 1 <= N <= 10^5, 1
2023-08-22:请用go语言编写.给定一个长度为N的正数数组,还有一个正数K, 返回有多少子序列的最大公约数为K. 结果可能很大,对1000000007取模. 1 <= N <= 1 ...
- WPF 在MVVM模式下应用动画
一个简单的需求:当程序发生异常时候,在界面上动画显示异常信息. 这个需求看似简单,只需要try--catch到异常,然后把异常的信息写入界面就OK了. 但在MVVM时,就不是这么简单了.MVVM模式下 ...
- QA|如何给我们的自动化测试代码增加日志记录?|Loguru
这里我们用的是loguru,logging虽然是自带的,但确实使用起来比较繁琐,loguru在Logging基础上增加了很多个性化功能,使用起来也比较简单,所以就使用loguru 代码如下: 1 # ...
- LeetCode297:hard级别中最简单的存在,java版,用时击败98%,内存击败百分之九十九
本篇概览 因为欣宸个人水平有限,在刷题时一直不敢面对hard级别的题目,生怕出现一杯茶一包烟,一道hard做一天的窘境 这种恐惧心理一直在,直到遇见了它:LeetCode297,建议不敢做hard题的 ...
- python一键过杀软
python过杀软新 利用python加载shellcode过360.火绒等杀软 先上代码 将以下代码保存到 mt.py import base64 import os import shutil b ...
- numpy_tricks
Numpy Tricks 这篇文章不定期更新,主要是记录在使用numpy过程中一些有效的tricks(或者重要的API) import numpy as np numpy.where() numpy. ...
- 618京东到家APP-门详页反爬实战
一.背景与系统安全需求分析 1. 系统的重要性 上图所示是接口所属位置.对电商平台或在线商店而言,分类查商品都是很重要的,通过为用户提供清晰的商品分类,帮助他们快速找到所需产品,节省浏览时间,提升购物 ...
- 20个最佳实践提升Terraform工作流程|Part 1
Terraform 是管理基础设施及代码(IaC)最常用的工具之一,它能使我们安全且可预测地对基础设施应用更改.刚开始上手 Terraform 可能会感觉有些不容易,但很快就能对该工具有基本的了解,随 ...
- Go协程揭秘:轻量、并发与性能的完美结合
Go协程为并发编程提供了强大的工具,结合轻量级.高效的特点,为开发者带来了独特的编程体验.本文深入探讨了Go协程的基本原理.同步机制.高级用法及其性能与最佳实践,旨在为读者提供全面.深入的理解和应用指 ...


