使用Plexdrive/Rclone+Google Drive搭建无限容量的Emby媒体库

前言


一般我们玩PlexEmbyJellyfin这些媒体服务器的时候,都会考虑到硬盘大小的问题。如果考虑到成本的话,那就只能挂载无限网盘了,这里就建议用Google Drive,目前在土耳其区购买仅需50元。挂载方法的话可以用PlexdriveRclone

Plexdrive是一个可以安装Gdrive应用的工具,看名字像是为Plex量身打造,其实其它应用也可以用,该工具可以直接从Gdrive读取媒体文件,专门争对媒体服务器优化,貌似是利用内存缓存原理,可以加快媒体访问并减少API的读取次数。但是需要比较大的内存。

Rclone是一个强大的网盘挂载工具,很久前博主就经常介绍,不过考虑到用途,之前的挂载参数肯定是需要调整下的,所以会在这里单独说下,该工具目前也有适合媒体服务器的缓存读取功能,但缓存很容易占用本地硬盘空间,所以这里博主就不用缓存功能了,主要使用的是分段读取,读取会快点,对于API来说,读取次数也会变的非常少。

两个工具的读取区别

Plexdrive:只能读取和删除

Rclone:可以写入、读取和删除,但不能当硬盘直接写入,只能将文件移动进去

2个工具都需要安装fuse,可以提前装下,使用命令:

#Debian/Ubuntu系统
apt-get install fuse -y
#CentOS系统
yum install fuse -y

使用Plexdrive

Github地址:→ 传送门

1、获取谷歌API凭据

获得自己的客户端ID和客户端密钥

客户端 ID
540168500500-*******************.apps.googleusercontent.com
客户端密钥
6k-****************
创建日期
2021年6月12日 GMT+8 下午4:21:03
2、运行Plexdrive

Plexdrive下载地址,根据自己的架构选择对应的版本。

#下载最新的Plexdrive
wget https://github.com/dweidenfeld/plexdrive/releases/download/5.0.0/plexdrive-linux-amd64
#移动并命名
mv plexdrive-linux-amd64 /usr/local/bin/plexdrive
chmod +x /usr/local/bin/plexdrive
#新建本地挂载目录
mkdir -p /home/gdrive
#开始挂载
/usr/local/bin/plexdrive mount \
 -c /root/.plexdrive \
 -o allow_other \
 -v 4 --refresh-interval=1m \
 --chunk-check-threads=8 \
 --chunk-load-threads=8 \
 --chunk-load-ahead=4 \
 --max-chunks=100 \
 --drive-id=0ANsR2iUah42-Uk9PVA \
 /home/gdrive

挂载参数可以参考传送门,可以根据你的需求自行调整以上参数。

挂载后会要你输入客户端ID和密匙,然后打开获取到的链接绑定账号后,将自己获取到的code复制到SSH客户端确定即可。

然后接下来Plexdrive将开始生成缓存,所以期间我们需要等几分钟。缓存完了后,你会看到Gdrive的文件已经同步到了本地挂载文件夹。

3、开机自启

这里使用Systemctl守护进程,只适用于CentOS 7Debian 8+Ubuntu 16+

cat > /etc/systemd/system/plexdrive.service <<EOF
[Unit]
Description=Plexdrive
AssertPathIsDirectory=/home/gdrive
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/plexdrive mount \
 -c /root/.plexdrive \
 -o allow_other \
 -v 4 --refresh-interval=1m \
 --chunk-check-threads=8 \
 --chunk-load-threads=8 \
 --chunk-load-ahead=4 \
 --max-chunks=100 \
 --drive-id=0ANsR2iUah42-Uk9PVA \
 /home/gdrive
ExecStop=/bin/fusermount -u /home/gdrive
Restart=on-abort

[Install]
WantedBy=default.target
EOF

开始启动:

systemctl start plexdrive

设置开机自启:

systemctl enable plexdrive

其他命令:

重启:systemctl restart plexdrive
停止:systemctl stop plexdrive
状态:systemctl status plexdrive

使用Rclone

1、配置Rclone

使用和挂载Google Drive的方法可以参考博主以前发的 教程,但只参考教程安装和配置即可,挂载就看本文。

2、挂载Gdrive

挂载需要3个主要参数,这里很多人容易搞混,就详细的说下,比如开头的参数如下:

/usr/bin/rclone mount DriveName:Folder LocalFolder

参数解读:

DriveName为Rclone的配置名称,比如你配置rclone的时候,Name填的Rats
Folder为网盘里的文件夹路径,如果你要挂载整个网盘,直接填/挂载整个根目录
LocalFolder为本地服务器上的挂载文件夹,如果你需要将网盘的文件夹挂载到服务器上的/Drive文件夹,那就填/Drive

博主目前针对媒体服务器测试了个比较不错的挂载参数,命令:

#记得修改DriveName:Folder和LocalFolder的值
/usr/bin/rclone mount DriveName:Folder LocalFolder \
 --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

更多参数可以查看地址一地址二,如果你喜欢折腾的话,可以测试下,看还有不有更适合的参数,然后留个言。

3、开机自启

这里和Plexdrive一样,同样使用Systemctl守护进程,也只适用于CentOS 7Debian 8+Ubuntu 16+

#以下是一整条命令,先修改DriveName:Folder和LocalFolder的值,再一起复制到SSH客户端运行
cat > /etc/systemd/system/rclone.service <<EOF
[Unit]
Description=Rclone
AssertPathIsDirectory=LocalFolder
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/rclone mount DriveName:Folder LocalFolder \
 --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

其他命令:

重启:systemctl restart rclone
停止:systemctl stop rclone
状态:systemctl status rclone

安装Emby

1、下载Emby Server

安装Emby Server的服务器配置选择最好在2核4G内存以上。我选择白嫖Azure,200美元一个月试用。可以开一台F4s,配置为4核8G,Debian11系统。因为是白嫖服务器,每天做好备份。下载地址→ 传送门

wget https://github.com/MediaBrowser/Emby.Releases/releases/download/4.6.7.0/emby-server-deb_4.6.7.0_amd64.deb
2、安装Emby Server

dpkg命令安装.deb

dpkg -i emby-server-deb_4.6.7.0_amd64.deb

卸载命令:

dpkg -r --purge emby-server
3、同步Emby配置文件

Emby的配置文件一般在/var/lib/emby目录下,因此将此目录下的所有文件备份同步即可

备份并同步至我的谷歌云盘

time=$(date "+%Y.%m.%d")
cd /var/lib && tar -zcvf /root/emby_$time.tar.gz emby/
nohup rclone move -v /root/emby_$time.tar.gz emby:/【07】资料/LInux/Azure --transfers=4 >/dev/null 2>&1 &

将谷歌网盘备份的Emby配置文件同步到本地

time=$(date "+%Y.%m.%d")
cp /home/gd/【07】资料/LInux/Azure/emby_$time.tar.gz /var/lib
tar -zxvf /var/lib/emby_$time.tar.gz -C /var/lib

总结

现在Plexdrive项目好像很少更新了,不过还能用;至于Rclone的话,更新频繁,功能也强,所以博主还是偏向于Rclone的,不过博主体验了下下,貌似Plexdrive加载什么的更快些,当然也不能肯定Plexdrive要快,毕竟也可能与其它因素有关,对于这2个工具的选择,可以都体验下,觉得哪个适合自己就用那个。


使用Plexdrive/Rclone+Google Drive搭建无限容量的Emby媒体库
https://blog.iwoov.com/娱乐/2f5e404d7ef8/
作者
Wu Yun
发布于
2021年4月15日
许可协议