
jellyfin-library-poster是一款为Jellyfin/Emby媒体服务器设计的媒体库封面自动生成工具。它能根据媒体库中的海报(默认选取最新9张,若无时间信息则随机选择)定时生成媒体库封面,并自动上传更新至服务器,解决手动制作封面的繁琐问题,有效提升媒体库的视觉展示效果。
适用于所有使用Jellyfin或Emby媒体服务器的用户,尤其适合媒体库内容频繁更新、需要自动维护封面美观度的场景。无论是个人家庭媒体中心还是小型媒体服务,均可通过该工具实现媒体库封面的自动化、个性化管理。
基本命令
bashdocker run \ --name jellyfin-library-poster \ -v "./config:/app/config" \ -v "./poster:/app/poster" \ -v "./output:/app/output" \ -v "./logs:/app/logs" \ -v "./myfont:/app/myfont" \ evanqu/jellyfin-library-poster:latest
挂载目录说明
/app/config:存放配置文件config.json(必填,需手动创建并配置)/app/poster:存放下载的海报(可选)/app/output:存放生成的媒体库封面(可选)/app/logs:存放日志文件(可选)/app/myfont:存放自定义字体文件(可选,需配合配置文件调整)docker-compose.yml文件
yamlservices: 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 - ./myfont:/app/myfont
启动命令
bashdocker-compose down && docker-compose pull && docker-compose up -d
bashpip install -r requirements.txt python main.py
config.json是项目的核心配置文件,用于设置Jellyfin/Emby服务器连接信息及媒体库海报生成规则。需在/app/config目录下创建该文件,并根据实际需求修改配置。
base_url、user_name和password配置正确,以正常连接服务器exclude_update_library中列出的媒体库将不会自动更新海报json{ "jellyfin": [ { "server_name": "MyJellyfin", "server_type": "jellyfin", "base_url": "http://192.168.2.211:8089", "user_name": "user", "password": "pass", "update_poster": false }, { "base_url": "http://192.168.2.232:8089", "user_name": "user", "password": "pass", "update_poster": false } ], "cron": "0 1 * * *", "exclude_update_library": ["Short", "Playlists", "合集"], "style_config": [ { "style_name": "style1", "style_ch_font": "字体名带后缀", "style_eng_font": "字体名带后缀" } ], "template_mapping": [ { "library_name": "Anime", "library_ch_name": "动漫", "library_eng_name": "ANIME", "poster_sort": "DateLastContentAdded" }, { "library_name": "Classic TV", "library_ch_name": "电视剧", "library_eng_name": "TV", "poster_sort": "Random" }, { "library_name": "Movie", "library_ch_name": "电影", "library_eng_name": "MOVIE", "poster_sort": "DateCreated" }, { "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", "poster_sort": "DateLastContentAdded" }, { "library_name": "Short", "library_ch_name": "短剧", "library_eng_name": "SHORT" }, { "library_name": "TEST TV", "library_ch_name": "测试电视", "library_eng_name": "TEST TV" } ] }
jellyfin节点:服务器配置
用于配置Jellyfin/Emby服务器连接信息,支持多服务器配置。
| 字段名 | 说明 | 必填 | 默认值 |
|---|---|---|---|
| server_name | Jellyfin/Emby服务器名称 | 是 | - |
| server_type | 服务器类型,取值为jellyfin或emby | 是 | - |
| base_url | Jellyfin/Emby服务器地址 | 是 | - |
| user_name | 登录用户名 | 是 | - |
| password | 登录密码 | 是 | - |
| update_poster | 是否自动上传更新媒体库海报(会覆盖原有海报,建议先设为false测试效果) | 否 | false |
cron节点:定时任务
设置自动生成封面的定时任务时间,遵循标准Cron表达式格式(分钟 小时 日 月 星期)。示例:"0 1 * * *"表示每天凌晨1点执行任务。
exclude_update_library节点:排除更新的媒体库
数组类型,列出不需要自动更新海报的媒体库名称,例如:["Short", "Playlists", "合集"]。
style_config节点:海报样式配置
用于配置海报字体样式,目前仅支持style1一种样式。
| 字段名 | 说明 | 必填 | 默认值 |
|---|---|---|---|
| style_name | 海报样式名称,固定值为style1 | 是 | style1 |
| style_ch_font | 中文字体文件名(需包含后缀,如“微软雅黑.ttf”,字体文件需存放于/app/myfont目录) | 是 | - |
| style_eng_font | 英文字体文件名(需包含后缀,如“Arial.ttf”,字体文件需存放于/app/myfont目录) | 是 | - |
template_mapping节点:媒体库模板映射
为每个媒体库配置生成封面的显示名称和海报排序方式。
| 字段名 | 说明 | 必填 | 默认值 |
|---|---|---|---|
| library_name | Jellyfin/Emby中媒体库的实际名称 | 是 | - |
| library_ch_name | 封面显示的中文名称 | 是 | - |
| library_eng_name | 封面显示的英文名称 | 是 | - |
| poster_sort | 海报排序方式,可选值包括DateCreated(创建时间)、DateLastContentAdded(最后添加时间)、Random(随机)等(可通过媒体库排序URL中的sortBy参数获取更多值) | 否 | DateCreated |
!https://github.com/HappyQuQu/jellyfin-library-poster/raw/main/screenshot/1.png
!https://github.com/HappyQuQu/jellyfin-library-poster/raw/main/screenshot/Anime.png !https://github.com/HappyQuQu/jellyfin-library-poster/raw/main/screenshot/ClassicTV.png !https://github.com/HappyQuQu/jellyfin-library-poster/raw/main/screenshot/Documentary.png !https://github.com/HappyQuQu/jellyfin-library-poster/raw/main/screenshot/HotMovie.png !https://github.com/HappyQuQu/jellyfin-library-poster/raw/main/screenshot/HotTV.png !https://github.com/HappyQuQu/jellyfin-library-poster/raw/main/screenshot/Movie.png
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务