plex 和 emby,这两个软件是不错,但是因为收费,不得不放弃之。

jellyfin开源地址:https://github.com/jellyfin/jellyfin

安装 Docker

在群辉套件中心搜索 docker 并安装

安装 jellyfin

  • 打开 docker,点击注册表,搜索 jellyfin,双击第一个进行安装:如果有提示 请选择标签,直接点 latest 选择就好,点击映像,会看到 jellyfin,等待下载完成

  • 进入群晖的文件管理器里面,在 docker 文件夹内新建一个名字叫 jellyfin 的文件夹

  • 打开控制编办,创建共享文件夹,比如 video,用来保存电影

  • 镜像下载好了后,我们进入到映像里,选择下载的 jellyfin,点启动

  • 点击高级设置,然后点击卷,添加文件夹,将 jellyfin 和 video 文件夹都添加上:将video文件夹装载到 /media下,将docker/jellyfin 装载到 /config

  • 点击端口设置,默认是 8096,设置一样的即可

  • 设置完成后,点击应用 -> 点下一步 -> 点击应用 ->点击容器,可以看到 jellyfin 服务已经运行成功了!

docker 下安装 jellyfin 完成

设置 jellyfin

  • 在浏览器中输入这个 nas 的 IP 加上端口号 8096,如IP:8096,就进入到了 jellyfin 设置页面,默认是英文,先设置成中文,点击 Next

  • 然后要求设置一下账号和密码,简单设置一下即可,点击 Next

  • 添加媒体库,暂时先不添加,直接点 Next 跳过

  • 然后选择语言,选择 Chinese,然后下面的国家,选择 people’s Republic of china,点击 Next

  • 默认,点击 Next

  • 点击 Finish

  • 这个时候进入到了登录页面,输入用户密码进入到 jellyfin 里面,因为没有设置媒体库,所以没有内容

设置媒体库

  • 点击左上角 -> 控制台 -> 媒体库 -> 添加媒体库

  • 这里有一些分类,比如电影,音乐,电视剧等,会刮削一些媒体对应的内容,这里先选择了电影,将右上角的显示高级设置打开,依次设置名称、文件夹、语言,文件夹选择/media 这个文件夹里面你存放电影的文件夹(这个/media,就是我们之前设置的 video 文件夹)

  • 将媒体图像保存到文件夹打勾,这样会将刮削的封面直接放到你电影的文件夹里

  • 其他默认,点击确定后,就开始自动扫描媒体库了,这个过程,会自动根据电影的文件名在网上进行刮削,制作电影墙

  • 扫描媒体是一个很慢的过程,我们再添加一下电视节目的类型,比如电视剧,连续剧都放到这个目录下,还是老规矩,元数据里的全部打勾,将媒体保存到文件夹里也打勾

  • 到此,基础的 jellyfin 就设置好了,只要返回主页就能看到自己的电影了!

插件设置

  • 除了媒体库和转码设置,还有一个字幕插件,有些我们下的国外的电影,是没有字幕的,拥有了这个插件,可以进行自动下载匹配的字幕。点击到插件选项,右边往下移,找到 open subtitles 这个, 点击安装版本进行安装

  • 安装后,提示要重启 jellyfin 服务, 我们进入到 docker 里,将这个容器进行重启,重启后,点到插件,就可以看到这个插件了

  • 进入这个插件,填上账号密码就 ok 了,账号没有的话,点击下面的 register 注册一下

其它设置

端口设置

多用户,权限控制

其他问题

演员照片不显示
添加host
13.225.69.117 api.themoviedb.org

项目地址:https://github.com/nondanee/UnblockNeteaseMusic
食用指南:https://github.com/nondanee/UnblockNeteaseMusic/issues/22

特性:

  • 使用 QQ / 虾米 / 百度 / 酷狗 / 酷我 / 咪咕 / JOOX 音源替换变灰歌曲链接 (默认仅启用一、五、六)
  • 为请求增加 X-Real-IP 参数解锁海外限制,支持指定网易云服务器 IP,支持设置上游 HTTP / HTTPS 代理
  • 完整的流量代理功能 (HTTP / HTTPS),可直接作为系统代理 (同时支持 PAC)

在 windows 本地使用

安装 node.js

去 node.js 官网下载安装即可

启动服务

git clone https://github.com/nondanee/UnblockNeteaseMusic.git #克隆项目仓库
cd UnblockNeteaseMusic
node app.js

$ npx @nondanee/unblockneteasemusic

$ npm install -g @nondanee/unblockneteasemusic
$ unblockneteasemusic

网易云客户端连接使用

在网易云客户端内设置代理:
右上角设置 > 自定义代理 > 地址 127.0.0.1 端口 8080
确定重启客户端后,即可开始使用

PAC 自动代理脚本地址 http://127.0.0.1:8080/proxy.pac

以上是在本地 window 上使用的方法,如果想给手机稳定使用,可以参考如下方式

全端解决方案

需要一台服务器

安卓等其它设备

安装 pm2

npm -g install pm2

pm2 部署:

pm2 start app.js --name UnblockNeteaseMusic -- -s -p 8080

ios 设备

ios 配置经验分享:https://github.com/nondanee/UnblockNeteaseMusic/issues/368

ios 需要一个域名,并配置反代

nginx 配置:

server {
listen 443 ssl http2;
server_name your_domain; # 改为你自己的域名
ssl_certificate 1_your_domain_bundle.crt; # 改为自己申请得到的 crt 文件的名称
ssl_certificate_key 2_your_domain.key; # 改为自己申请得到的 key 文件的名称
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 / {
proxy_pass http://localhost:8080; # 代理到 Unblock 服务地址
}
}

pm2 部署:

pm2 start app.js --name UnblockNeteaseMusic -- -s -p 8080 -e https://unblockneteasemusic.ayyy.club

iOS 搭配 Shadowrocket 连接代理

Shadowrocket 右上角加号添加节点 -> 类型选择 HTTP -> 服务器填写你的服务器公网 IP -> 端口填写你启动服务的端口号(默认为 8080) -> 点击配置 -> 点击本地文件 -> default.conf -> 编辑配置

添加三条规则 选项选择你刚刚添加的节点

USER-AGENT: NeteaseMusic*
DOMAIN-SUFFIX: 163.com
DOMAIN-SUFFIX: 126.net

pm2 常用命令

pm2 stop UnblockNeteaseMusic # 停止服务
pm2 restart UnblockNeteaseMusic # 重启服务
pm2 pull UnblockNeteaseMusic # 更新服务到最新代码
pm2 show UnblockNeteaseMusic # 查看服务的参数信息
pm2 log UnblockNeteaseMusic # 查看服务日志
pm2 ls # 查看已部署的服务列表
pm2 monit # 监控服务状态
pm2 flush # 清理所有日志文件
pm2 update # 更新 pm2 状态

一键打卡刷满 300 听歌量

https://today.nange.cn/

使用方法参考

https://www.nange.cn/unlock-netease-music.html

胖森微信公众号 (共享 AppleId(免费))

Procreate
GoodNotes5
P 站助手
Shu
Quantumult
Quantumult X
Shadowrocket

aneeo.com (AppleId)

旧版应用
AppleId 租用(收费)
应用代购

app.ignition.fun 打火机,广告太多不推荐 (在线安装)

越狱应用

野心玩家 app.ambier.cn (在线安装)

越狱应用 Uncover checkra1n
福利应用

bc 工具 id.cydias.top (在线安装)

越狱应用 Uncover checkra1n

有趣工具箱微信小程序 (在线安装)

越狱应用

宅哥玩机 (在线安装)

越狱应用
福利应用

WordPress 博客默认是不能实现多个域名独立访问的,即使我们绑定了多个域名,访问时也会自动跳转到安装站点时默认的域名

我们只需修改站点根目录下的 wp-config.php 文件,添加如下代码:

define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']);

即可

问题

媒体资源 添加 autoplay 在移动端不会生效

通过监听 scroll 事件 手动调用 play 方法会报如下错误:Uncaught (in promise) DOMException: play() failed because the user didn’t interact with the document first.

ios 端报如下错误:Uncaught (in promise) NotAllowedError:The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.

自动播放政策

Chrome 浏览器的自动播放政策在 2018 年 4 月更改:

  • 始终允许静音自动播放。
  • 用户已与页面进行了交互(单击,点击等)。

详细政策不一一列举了,访问 https://goo.gl/xX8pDD 查看详情

Web 开发人员的最佳做法

重点:永远不要假设视频会播放,并且在视频未实际播放时也不要显示暂停按钮。

您应该始终查看 play 函数返回的 Promise,看它是否被拒绝:

var promise = document.querySelector('video').play()
if (promise !== undefined) {
promise
.then((_) => {
// Autoplay started!
})
.catch((error) => {
// Autoplay was prevented.
// Show a "Play" button so that user can start playback.
})
}

使用静音的自动播放功能,并让他们选择取消静音

<video id="video" muted autoplay></video>

HWIDGEN

是一款由国外 Nsane 论坛会员 s1ave77 制作的 Windows 10 数字权利激活工具,可以自动获取 Windows 10 数字许可证

数字许可证(在 Windows 10 版本 1511 中称为数字授权)是 Windows 10 的一种激活方法,该方法不需要输入产品密钥。在同一台电脑上主要硬件(应该是 CPU 和主板)不变化的情况下,重新安装系统时无需再次输入密钥,系统会在自动连接到微软服务器进行激活。

下载地址

https://www.aiowares.com/showthread.php?tid=246
百度网盘:https://pan.baidu.com/s/111rJZHaOFJrpOdOKXW5Vcw 提取码:3o1c
阿里云盘:https://www.aliyundrive.com/s/rDRjZipezKs 提取码:f99y

离线 KMS 激活工具 HEU KMS Activator v19.6.2 正式版

支持 Office2010/2013/2016/2019 、Windows10/8.1/8 等版本KMS激活
支持 Win10 数字许可证激活

下载地址

百度网盘:https://pan.baidu.com/s/1gAGqEHEMjUa4IDx4tYNXag 提取码:vrfc
阿里云盘:https://www.aliyundrive.com/s/QUzToEPidB7 提取码: f99y

Microsoft 激活脚本(MAS):

一组脚本,用于使用 HWID / KMS38 /在线 KMS 激活方法激活 Microsoft 产品,重点是开放源代码,较少的防病毒检测和用户友好性。
原贴地址(需要登录):https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/

下载地址

github:https://github.com/massgravel/Microsoft-Activation-Scripts
gitlab:https://gitlab.com/massgrave/microsoft-activation-scripts
百度网盘:https://pan.baidu.com/s/1JKEYAfgJj9msfW81bhbKjw 提取码:21di
阿里云盘:https://www.aliyundrive.com/s/ZU7am7SwVx8 提取码:f99y

Google Drive 团队盘,不是增加你本身空间,是增加一个团队盘在你名下,你账号是 15G 依然是 15G,但是存在团队盘里的不算你的占用。

申请地址:
http://leon.educationhost.cloud/
https://td.fastio.me/
https://gd.zxd.workers.dev/ All Saints CofE Junior School
https://teamdrive.xcpx.workers.dev/ swccd.edu
https://gd.404edu.workers.dev/ 台灣教育部

输入团队盘名称,随便你自己取,建议英文格式。Gmail 邮箱地址建议用自己的小号。弄好这两样后点击提交即可,等提示创建成功就 OK 了。

登陆 Google Drive 后你会发现在 My Drive(我的云端硬盘) 下面多出了一个 Shared drives(共享云端硬盘) 的菜单按钮

无限空间方式:

  • 教育版无限空间
  1. 卖给你支持 GApps 的学校的邮箱账号密码,简单直接,没啥好说的,登上去就有了
  2. 不给你邮箱,让你提供自己的 Gmail 账号,然后他给你拉进去。详细讲就是他新开一个“share drive”然后把你拉进去,你们俩就共享这个“share drive”的无限空间了。(记得将自己设置成管理员,并把拉你的人从 share drive 中删除)

如果买了邮箱也建议自己按照上面方式 2 那样给自己的 Gmail 分配无限空间,因为买的教育邮箱可能来路不正,可能被封,而分配出去的 share drive 是不受影响的。

  • 从 G Suit 获取的无限空间
    跟上面的教育网那个类似的,只是是商业的用途,按月交钱,不同档次支持的用户数不同。同样是把你拉进去就可以用无限空间了。这玩意儿人家只要不续费了你就完犊子了。管理员是可以随意查看账号中的内容

04/27 更新 解决 workers 无法正常访问

作者删除了 github 仓库, GoIndex 依赖的 js 资源加载失败,导致网页打开是一片空白

解决方法;

首先到 GitHub Fork 一份 goindex,可以直接 fork 我的

登录 CF,打开 workers,选中项目,找到以下代码,我的是在 21 行,替换成有效的即可(可以是你 fork 的,也可以直接使用我的)

<script src="//cdn.jsdelivr.net/combine/gh/jquery/jquery@3.2/dist/jquery.min.js,gh/donwa/goindex@${authConfig.version}/themes/${authConfig.theme}/app.js"></script>

替换成

<script src="//cdn.jsdelivr.net/combine/gh/jquery/jquery@3.2/dist/jquery.min.js,gh/cuilongjin/goindex/themes/${authConfig.theme}/app.js"></script>

原文

利用 GoIndex 程序,以及 CloudFlare,可以将 Google Drive 文件以目录形式(类似 OneIndex 部署 OneDrive 网盘)列出,可直链调用网盘图片、音频、视频文件等,也可以下载,流量走 CloudFlare ,网速由 CloudFlare 决定

项目地址: https://github.com/donwa/goindex

demo: https://index.gd.workers.dev/

安装部署方案 1

1、在本地安装 rclone
2、按照 https://rclone.org/drive/ 流程进行授权
3、执行 rclone config file 查看 rclone.conf 路径。找到 root_folder_id 和 refresh_token 记录下来
4、下载 https://github.com/donwa/goindex 中的 index.js 并填入 root 和 refresh_token
5、复制代码 到 CloudFlare 部署

安装部署方案 2

作者不会记录 refresh_token,但为避免纠纷,建议有条件的同学使用方案 1 进行部署
1、访问https://install.gd.workers.dev/
2、授权认证后,生成部署代码
3、复制代码 到 CloudFlare 部署

目录 id:例如 google 网盘链接为https://drive.google.com/drive/folders/1rrDnupW_1qxRnQf-jy_0PN_GqNK8SEk2,则目录 id 为 1rrDnupW_1qxRnQf-jy_0PN_GqNK8SEk2

部署 CloudFlare

绑定自定义域名

https://github.com/donwa/goindex/issues/4

todo:
https://www.cnblogs.com/mysummerday/p/12661263.html#_caption_1

./rclone.exe mount secret:/ Q: --cache-dir G:\OneDrive --vfs-cache-mode writes &

Fatal error: failed to mount FUSE fs: mount stopped before calling Init: mount failed: cgofuse: cannot find winfsp

安装 rclone 并挂载 Googledrive

安装 rclone

Linux 环境

curl https://rclone.org/install.sh | sudo bash

Windows 环境

直接去 rclone 官网下载 rclone,最好将 rclone.exe 所在目录加入系统环境变量

配置 rclone

详细配置参考 https://rclone.org/drive/

rclone config
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n # 新建
name> gdrive # 名称,后面要用到
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / 1Fichier
\ "fichier"
2 / Alias for an existing remote
\ "alias"
3 / Amazon Drive
\ "amazon cloud drive"
4 / Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc)
\ "s3"
5 / Backblaze B2
\ "b2"
6 / Box
\ "box"
7 / Cache a remote
\ "cache"
8 / Citrix Sharefile
\ "sharefile"
9 / Dropbox
\ "dropbox"
10 / Encrypt/Decrypt a remote
\ "crypt"
11 / FTP Connection
\ "ftp"
12 / Google Cloud Storage (this is not Google Drive)
\ "google cloud storage"
13 / Google Drive
\ "drive"
14 / Google Photos
\ "google photos"
15 / Hubic
\ "hubic"
16 / In memory object storage system.
\ "memory"
17 / JottaCloud
\ "jottacloud"
18 / Koofr
\ "koofr"
19 / Local Disk
\ "local"
20 / Mail.ru Cloud
\ "mailru"
21 / Mega
\ "mega"
22 / Microsoft Azure Blob Storage
\ "azureblob"
23 / Microsoft OneDrive
\ "onedrive"
24 / OpenDrive
\ "opendrive"
25 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
26 / Pcloud
\ "pcloud"
27 / Put.io
\ "putio"
28 / QingCloud Object Storage
\ "qingstor"
29 / SSH/SFTP Connection
\ "sftp"
30 / Sugarsync
\ "sugarsync"
31 / Transparently chunk/split large files
\ "chunker"
32 / Union merges the contents of several remotes
\ "union"
33 / Webdav
\ "webdav"
34 / Yandex Disk
\ "yandex"
35 / http Connection
\ "http"
36 / premiumize.me
\ "premiumizeme"
Storage> 13 # 选择 13 google drive
** See help for drive backend at: https://rclone.org/drive/ **

Google Application Client Id
Setting your own is recommended.
See https://rclone.org/drive/#making-your-own-client-id for how to create your own.
If you leave this blank, it will use an internal key which is low performance.
Enter a string value. Press Enter for the default ("").
client_id> # 默认
Google Application Client Secret
Setting your own is recommended.
Enter a string value. Press Enter for the default ("").
client_secret> # 默认
Scope that rclone should use when requesting access from drive.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / Full access all files, excluding Application Data Folder.
\ "drive"
2 / Read-only access to file metadata and file contents.
\ "drive.readonly"
/ Access to files created by rclone only.
3 | These are visible in the drive website.
| File authorization is revoked when the user deauthorizes the app.
\ "drive.file"
/ Allows read and write access to the Application Data folder.
4 | This is not visible in the drive website.
\ "drive.appfolder"
/ Allows read-only access to file metadata but
5 | does not allow any access to read or download file content.
\ "drive.metadata.readonly"
scope> 1 # 选1,所有权限
ID of the root folder
Leave blank normally.

Fill in to access "Computers" folders (see docs), or for rclone to use
a non root folder as its starting point.

Note that if this is blank, the first time rclone runs it will fill it
in with the ID of the root folder.

Enter a string value. Press Enter for the default ("").
root_folder_id> # 默认
Service Account Credentials JSON file path
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Enter a string value. Press Enter for the default ("").
service_account_file> # 默认
Edit advanced config? (y/n)
y) Yes
n) No (default)
y/n> # 默认
Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes (default)
n) No
y/n> n # 如果在远程服务器上配置,记得选 n,否则可能无法正常授权
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
Configure this as a team drive?
y) Yes
n) No
y/n> n
--------------------
[remote]
client_id =
client_secret =
scope = drive
root_folder_id =
service_account_file =
token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2014-03-16T13:57:58.955387075Z"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:
Name Type
==== ====
gdrive drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q

注意:如果在远程 linux 安装,有些配置(涉及 oauth2 的配置)需要使用浏览器授权,可以使用一下方法配置

参考:https://rclone.org/remote_setup/

Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> n # 这里选择 n,授权链接会变成如下样式,而不再是 http://127.0.0.1
Please go to the following link: https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=202264815644.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=J17j_xVz3tAQmV3sMO0xxw
Log in and authorize rclone for access
Enter verification code> # 打开链接登陆授权,将code粘贴到这里

挂载

mkdir -p /home/gdrive
#gdrive 为上面配置的 name
#/home/gdrive 为挂载到本地的目录
/usr/bin/rclone mount gdrive: /home/gdrive \
--umask 0000 \
--default-permissions \
--allow-non-empty \
--allow-other \
--buffer-size 32M \
--dir-cache-time 12h \
--vfs-cache-mode \
writes &

报错
Fatal error: failed to mount FUSE fs: fusermount: exec: “fusermount”: executable file not found in $PATH
解决:安装 fuse
apt-get install fuse -y

# 卸载磁盘
fusermount -qzu LocalFolder # LocalFolder 为本地挂载目录

查看挂载

df -h
Filesystem Size Used Avail Use% Mounted on
gdrive: 1.0P 0 1.0P 0% /home/gdrive

自动挂载

cat > /etc/systemd/system/rclone.service <<EOF
[Unit]
Description=Rclone
AssertPathIsDirectory=LocalFolder
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/rclone mount emby: /home/gdrive \
--umask 0000 \
--default-permissions \
--allow-non-empty \
--allow-other \
--buffer-size 32M \
--dir-cache-time 12h \
--vfs-read-chunk-size 64M \
--vfs-read-chunk-size-limit 1G
ExecStop=/bin/fusermount -u LocalFolder
Restart=on-abort
User=root

[Install]
WantedBy=default.target
EOF

启动

systemctl start rclone

开启启动

systemctl enable rclone