carolcoral / tmdb-person

TMDB刮削演员信息(Emby Server版本)
https://gitea.cnkj.site/gitea/tmdb-person
8 stars 0 forks source link
tmdb tmdb-api tmdb-movie tmdb-people

tmdb-person

Version Python TMDB https://blog.cnkj.site

根据nfo文件信息刮削相关演员信息及图片

解决docker部署的emby服务无法正常刮削到视频演员信息问题(通过nastool可以正常刮削到视频信息)

⚠️注意

  1. 建议使用linux环境或macOS环境进行执行(windows环境执行的数据结果在导入metadata中后可能会被识别成乱码).
  2. 受不同国家语言限制,部分刮削内容可能出现"GBK"异常提示,请使用 MacOS 或者 Linux 环境执行脚本即可.
  3. 如果采用非批量的执行方式,即直接使用 scrape 模式进行刮削而没有先进行 collect 模式进行元数据收集后再进行刮削. 该情况下为避免重名文件导致的跳过刮削, 请注释 scrape.py 文件中第 70 行代码:
    shutil.copy(__file_path, "complete/")

目录说明

电视剧tvs 和 电影movies 的保存 .nfo 命名格式不一样。movies的 .nfo 文件以电影名为前缀, tvs 统一以 tvshow.nfo 命名

data

根据实际配置的 __output 路径自动生成.实际刮削后的演员信息和图片的存放路径.

complete

自动生成.存放完成刮削后被转移过来的元数据信息.

redo

自动生成.存放刮削过程中出现异常的元数据记录.

logs

自动生成.存放脚本执行过程中产生的日志文件, 可通过配置进行修改.

utils

主程序下各个脚本子程序代码.

调用接口

https://developer.themoviedb.org/

  1. 演员信息刮削:https://developer.themoviedb.org/reference/person-details
  2. 图片统一前缀路径:https://www.themoviedb.org/t/p/original

使用

安装相关pip依赖包

pip3 install requests
pip3 install os
pip3 install xml
pip3 install json

OR/或

pip3 install -r requirements.txt

相关说明

参数说明

目录结构说明

运行

参数 __mode 为可选参数,具体请参考参数说明内容

1. 直接修改脚本文件方式

  1. 修改 main.py 文件中 if __name__ == '__main__': 方法中 __dir_path__output__tmdb_token__mode参数值
  2. 执行脚本
    python3 main.py

2. 命令行执行

注意参数 --dir_path 的值如果需要配置多个,请使用英文半角逗号拼接,不要有空格

python3 main.py --dir_path "example/movies","example/tvs" --output data/metadata/person --tmdb_token tmdb_token --mode collect

3. 后台执行

可以结合前两种执行方式使用

nohup python3 main.py > nohup.log 2>&1 & echo &! > run.pid

多线程刮削

前置要求:需要先执行main.py脚本的"collect"模式收集nfo元数据文件

1. 直接修改脚本文件方式

  1. 修改 multi_thread.py 文件中 if __name__ == '__main__': 方法中 __dir_path__output__tmdb_token 参数值
  2. 执行脚本
    python3 multi_thread.py

2. 命令行执行

注意参数 --dir_path 的值如果需要配置多个,请使用英文半角逗号拼接,不要有空格

python3 multi_thread.py --dir_path "example/movies","example/tvs" --output data/metadata/person --tmdb_token tmdb_token

3. 后台执行

可以结合前两种执行方式使用

nohup python3 multi_thread.py > nohup.log 2>&1 & echo &! > run.pid

补充

  1. 运行提示 no module name requests 但是实际python环境中又安装了的:
    • 查看当前执行的python版本:python --version
    • 例如 python3 --version 显示的是3.8,但是实际有3.9版本的环境,可以使用 python3.9 -m pip install requests 进行指定python版本的依赖包安装