Skip to content

根据媒体库里面的海报(默认最新的9张,没有时间就随机)生成媒体库封面并且上传更新

License

Notifications You must be signed in to change notification settings

midooocat/jellyfin-library-poster

 
 

Repository files navigation

jellyfin-library-poster

jellyfin/Emby 根据媒体库里面的海报(默认最新的 9 张,没有时间就随机)生成媒体库封面并且上传更新 不会 python 随便写的

使用说明

docker 运行

docker run \
  --name jellyfin-library-poster \
  -v "./config:/app/config" \
  -v "./poster:/app/poster" \
  -v "./output:/app/output" \
  -v "./output:/app/logs" \
  evanqu/jellyfin-library-poster:latest

/app/config 存放 config.json

/app/poster 存放下载得海报(可选)

/app/output 存放生成的媒体库封面(可选)

/app/logs 存放日志(可选)

docker-compose 运行

docker-compose.yml文件

services:
  jellyfin-library-poster:
    image: evanqu/jellyfin-library-poster:latest
    container_name: jellyfin-library-poster
    volumes:
      - ./config:/app/config
      - ./poster:/app/poster
      - ./output:/app/output
      - ./logs:/app/logs
docker-compose down && docker-compose pull && docker-compose up -d

源码运行


pip install -r requirements.txt
python main.py

config 配置说明

config.json 是项目的配置文件,用于设置 Jellyfin 服务器连接信息和媒体库海报生成的规则。

1. Jellyfin/Emby 服务器配置

"jellyfin": [
    {
      "server_name": "MyJellyfin",
      "server_type": "jellyfin",
      "base_url": "http://192.168.2.210:8096",
      "user_name": "user_name",
      "password": "password",
      "update_poster": false
    },
    {
      "server_name": "MyEmby",
      "server_type": "emby",
      "base_url": "http://192.168.2.211:8097",
      "user_name": "user_name",
      "password": "password",
      "update_poster": false
    }
  ],
  • 支持多服务器配置
  • "jellyfin"的节点不要改,就算你是emby的也是jellyfin

2. 排除更新的媒体库

"exclude_Update_library": ["Short", "Playlists", "合集"]

此数组列出不需要自动更新海报的媒体库名称。

3. 媒体库模板映射

"template_mapping": [
  {
    "library_name": "Movie",             // Jellyfin 中的媒体库名称
    "library_ch_name": "电影",            // 海报的中文名称(用于海报显示)
    "library_eng_name": "MOVIE"          // 海报的英文名称(用于海报显示)
  },
  // 更多媒体库配置...
]

系统会根据这些映射为每个媒体库创建包含相应名称的自定义海报。

4. 定时任务

"cron": "0 1 * * *",

cron 字段用于设置自动更新海报的定时任务时间。其格式遵循标准的 Cron 表达式规则:

  • 0 1 * * * 表示每天凌晨 1 点执行任务。
  • Cron 表达式的格式为:分钟 小时 日 月 星期

如果需要修改定时任务时间,请根据需求调整 Cron 表达式。例如:

  • 每天中午 12 点:0 12 * * *
  • 每周一凌晨 2 点:0 2 * * 1

更多 Cron 表达式的用法可以参考相关文档。

完成配置

{
  "jellyfin": [
    {
      "server_name": "MyJellyfin",
      "server_type": "jellyfin",
      "base_url": "http://192.168.2.210:8096",
      "user_name": "user_name",
      "password": "password",
      "update_poster": false
    }
  ],
  "cron": "0 1 * * *",
  "exclude_update_library": ["Short", "Playlists", "合集"],
  "template_mapping": [
    {
      "library_name": "Anime",
      "library_ch_name": "动漫",
      "library_eng_name": "ANIME"
    },
    {
      "library_name": "Classic TV",
      "library_ch_name": "电视剧",
      "library_eng_name": "TV"
    },
    {
      "library_name": "Movie",
      "library_ch_name": "电影",
      "library_eng_name": "MOVIE"
    },
    {
      "library_name": "Documentary",
      "library_ch_name": "纪录片",
      "library_eng_name": "DOC"
    },
    {
      "library_name": "合集",
      "library_ch_name": "合集",
      "library_eng_name": "COLLECTIONS"
    },
    {
      "library_name": "Hot Movie",
      "library_ch_name": "正在热映",
      "library_eng_name": "HOT MOVIE"
    },
    {
      "library_name": "Hot TV",
      "library_ch_name": "正在热播",
      "library_eng_name": "HOT TV"
    },
    {
      "library_name": "Short",
      "library_ch_name": "短剧",
      "library_eng_name": "SHORT"
    },
    {
      "library_name": "TEST TV",
      "library_ch_name": "测试电视",
      "library_eng_name": "TEST TV"
    }
  ]
}

注意事项

  1. 请确保 base_urluser_namepassword 配置正确
  2. exclude_update_library 中列出的媒体库将不会被自动更新海报

效果图

About

根据媒体库里面的海报(默认最新的9张,没有时间就随机)生成媒体库封面并且上传更新

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.2%
  • Dockerfile 1.6%
  • Shell 0.2%