Emby的媒体数据库迁移(WIN-LINUX)

  • A+
所属分类:其他

Emby的媒体数据库迁移(WIN-LINUX)

一直想折腾Emby的迁移,WIN端到Linux,不挂载,不刮削,直接呈现所有刮削好的内容。
这两天静下来研究了下,终于成功!
这个是预览,http://23.94.24.110:8096/
没有挂载Rclone、没有刮削、直接迁移整个已刮削完毕的媒体库。

一些废话 记录下当时踩得坑以及思考和总结。

我一开始的思路是library.db控制数据库,里面包含了mediaitem信息,
那么替换这个文件,应该就能直接把整个库的信息迁移过去了,
于是先直接library.db丢进linux ,结果emby无法启动 。

花了好久排查(重装,各种重启命令。结果偶然才发现,好像这个文件的所属用户组不一样,新的library属于root/root,而emby原来的library属于999/998 )

然后就去百度怎么改所属目录的命令。把文件所属权限改成999:998后,emby成功启动。(我真的是小白)

然而新的问题来了,虽然剧集电影的信息已经全部显示出来了,
包含所有刮削资源的metadata文件夹也全部替换过去了,但是封面始终无法显示。

也就是说,数据库文件跟封面文件挂不了钩。
是哪里错了。于是就慢慢翻查各种错误信息,F12查看各种console源代码,
最后目光集中在 poster.jpg文件的路径上

把linux端原本的library文件与win端library文件进行比对。
终于发现mediaitem表中,images字段下,linux端的路径分隔符是正斜杠 / ,
而我自己win端的路径分隔符是 反斜杠 \ ,
导致WIN端的数据库迁移过去后,所有图片路径都是错误的格式,自然就打不开了。

之后好办了,百度,sql替换表内某字符的命令,
成功替换掉所有反斜杠成正斜杠后,上传library文件,修改所属权,启动emby,
成功!
所有刮削好的影片都完美的展示在眼前。

下一个研究目标:数据库的增量同步。
因为目前的实现只能是全套替换,(虽然我这个足够庞大,整理的足够好,但终归不可能齐全),很多人自己本身就有emby的媒体库,有自己的资源。
所以下一个研究的方向就是,别人把我的媒体库导入的同时,他自己的不丢。
导入没有的刮削信息,合并已有的。实现两个媒体库的统一。


总结一下执行步骤 :

  • 先确保关闭emby服务,sudo service emby-server stop

  • 删除/metadata/,/root/,/cache/,三个文件夹,以及/data/目录下的 library.db library.db-shm library.db-wal 三个文件,
    (emby目录一般在 var/lib 内,如果是docker搭建的,就在你自己配置的目录内)

  • 下载Zip包解压文件到对压存放位置:

```bash
emby/data/library.db
emby/metadata/
emby/root/
emby/cache/
emby/data/collections/

```

  • 然后chown一下上面的文件, 999/998,(视你自己主机而定)

```bash
chown 999:998 /var/lib/emby/data/library.db
chown -R 999:998 /var/lib/emby/metadata/
chown -R 999:998 /var/lib/emby/root/
chown -R 999:998 /var/lib/emby/cache/
chown -R 999:998 /var/lib/emby/data/collections/

```

  • 接着改一下媒体库的路径
    编辑Emby/root/default/电影/options.xml 文件
    把里面的<Path>L:\私人库\剧集\电影</Path>
    改成<Path>/home/私人库/剧集/电影</Path>

Emby的媒体数据库迁移(WIN-LINUX)

  • 再Rclone挂载到指定目录:/home/私人库/

rclone mount gdrive: /home/私人库 --巴拉巴拉巴拉

  • 最后重启emby服务:sudo service emby-server start 即可

关于emby安装

```bash

普通安装

sudo wget https://github.com/MediaBrowser/Emby.Releases/releases/download/4.3.1.0/emby-server-deb_4.3.1.0_amd64.deb
dpkg -i emby-server-deb_4.3.1.0_amd64.deb

```

做好最基本的配置向导,然后关闭emby。

Docker安装方式 点击展开

```bash

docker安装

拉取镜像:

docker pull emby/embyserver:latest

启动容器:

docker run -d \
--name emby \
--restart=always \
-v /home/docker/emby/config:/config \
-v /home/docker/emby/share1:/mnt/share1 \
-v /home/docker/emby/share2:/mnt/share2 \
-p 1900:1900 \
-p 7359:7359 \
-p 7359:7359/udp \
-p 8096:8096 \
-p 8920:8920 \
--env UID=1000 \
--env GID=100 \
emby/embyserver:latest

```

```bash

emby其他操作命令

关闭:sudo service emby-server stop
启动:sudo service emby-server start
卸载:sudo apt purge emby-server
Docker关闭:docker stop emby
Docker启动:docker start emby

```

关于数据库编辑操作:

  • 用DB编辑器编辑Win端的 library.db 文件(在 emby/programdata/data 目录下)
    把 反斜杠 替换为 正斜杠,不然所有媒体库内的封面无法加载

```sql

替换反斜杠为正斜杠

UPDATE MediaItems SET Images = REPLACE(Images,'\','/');
UPDATE MediaItems SET Path = REPLACE(Path,'\','/');
UPDATE MediaStreams2 SET Path = REPLACE(Path,'\','/');

替换媒体文件映射路径

UPDATE MediaStreams2 SET Path = REPLACE(Path,'L:','/home');
UPDATE MediaItems SET Path = REPLACE(Path,'L:','/home');

注意:路径可以自己改,但如果是按我这样改的话,团队盘就必须挂载到 /home/私人库/ 文件夹内!

```

Emby的媒体数据库迁移(WIN-LINUX)

  • 把Win端的 library.db 文件上传到VPS端对应文件夹内

此时它的用户组为 root/root ,我们需要把它的所属用户变更为跟其他文件一样,不然emby无法启动
– 根据图中信息,修改library文件的所属用户为999/998,(视你自己主机而定)(视你自己主机而定)(视你自己主机而定)(视你自己主机而定)

chown 999:998 /var/lib/emby/data/library.db

Emby的媒体数据库迁移(WIN-LINUX)

一些其他用得到的命令

```bash

安装压缩命令

apt install zip -y

解压缩ZZZ.zip文件

unzip /var/lib/emby/ZZZ.zip

```

```bash

安装screen命令

apt-get -y install screen

新建一个叫ren的窗口

screen -S ren

其他screen命令

列出所有窗口:

screen -ls

关闭1121窗口

screen -X -S 1121 quit

转到1121窗口

screen -r 1121
后台挂起当前窗口 返回到root窗口
Ctrl+A+D

```

```bash

安装 sshfs

apt install sshfs -y

debian安装rclone

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

配置rclone

rclone config

挂载gdrive盘

先新建一个窗口

screen -S ren

然后挂载

rclone mount gdrive: /home/私人库 --buffer-size 1G --vfs-read-chunk-size 256M --vfs-read-chunk-size-limit 2G --allow-non-empty --allow-other --dir-cache-time 12h

挂载后这个窗口下就敲不了命令了,所以需要按Ctrl+A+D

回到Root窗口,这也是为什么挂载需要新建窗口。

```

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin