MoviePilot
MoviePilot
Installation
For Docker on DSM users, create a container according to the following Docker command:
docker run -d \
--name moviepilot \
--hostname moviepilot \
-p 3000:3000 \
-v $(pwd)/config:/config \
-v /外部媒体目录:/media \
-e PUID=0 \
-e PGID=0 \
-e UMASK=000 \
-e MOVIEPILOT_AUTO_UPDATE=false \
-e MOVIE_RENAME_FORMAT="{{en_title}} ({{year}}) TM{{tmdbid}}/{{en_title}}{% if part %}-{{part}}{% endif %} ({{year}}) - {{videoFormat}}{{fileExt}}" \
-e TV_RENAME_FORMAT="{{en_title}} ({{year}}) TM{{tmdbid}}/S{{season}}/{{season_episode}} - {{en_title}}{{fileExt}}" \
-e LIBRARY_CATEGORY=false \
jxxghp/moviepilot:latest
The values of MOVIE_RENAME_FORMAT and TV_RENAME_FORMAT are fixed at 2024/06/02.
My Configuration
- 媒体服务器:
- 当前使用媒体服务器: Plex
- Plex:
- 地址: http://192.168.233.231:32400
- Token: (fill in)
- 媒体库:
- 下载目录: /downloads
- 整理方式: 硬链接
- 覆盖模式: 从不覆盖
- 媒体库目录: /media/_result
- 电影目录名称: Movie
- 电影目录名称: TV
- 动漫目录名称: Anime
- 系统-插件-Webhook: enabled
Notification (Webhook)
Create an API to accept the following test case:
echo -n '{"type": "notice.message", "data": {"channel": null, "type": {"_value_": "\u6574\u7406\u5165\u5e93", "_name_": "Organize", "__objclass__": "{'_generate_next_value_': <function Enum._generate_next_value_ at 0x7f6ab0bec0e0>, '__module__': 'app.schemas.types', '_new_member_': <built-in method __new__ of type object at 0x7f6ab15df0c0>, '_use_args_': False, '_member_names_': ['Download', 'Organize', 'Subscribe', 'SiteMessage', 'MediaServer', 'Manual'], '_member_map_': {'Download': <NotificationType.Download: '\u8d44\u6e90\u4e0b\u8f7d'>, 'Organize': <NotificationType.Organize: '\u6574\u7406\u5165\u5e93'>, 'Subscribe': <NotificationType.Subscribe: '\u8ba2\u9605'>, 'SiteMessage': <NotificationType.SiteMessage: '\u7ad9\u70b9\u6d88\u606f'>, 'MediaServer': <NotificationType.MediaServer: '\u5a92\u4f53\u670d\u52a1\u5668\u901a\u77e5'>, 'Manual': <NotificationType.Manual: '\u624b\u52a8\u5904\u7406\u901a\u77e5'>}, '_value2member_map_': {'\u8d44\u6e90\u4e0b\u8f7d': <NotificationType.Download: '\u8d44\u6e90\u4e0b\u8f7d'>, '\u6574\u7406\u5165\u5e93': <NotificationType.Organize: '\u6574\u7406\u5165\u5e93'>, '\u8ba2\u9605': <NotificationType.Subscribe: '\u8ba2\u9605'>, '\u7ad9\u70b9\u6d88\u606f': <NotificationType.SiteMessage: '\u7ad9\u70b9\u6d88\u606f'>, '\u5a92\u4f53\u670d\u52a1\u5668\u901a\u77e5': <NotificationType.MediaServer: '\u5a92\u4f53\u670d\u52a1\u5668\u901a\u77e5'>, '\u624b\u52a8\u5904\u7406\u901a\u77e5': <NotificationType.Manual: '\u624b\u52a8\u5904\u7406\u901a\u77e5'>}, '_unhashable_values_': [], '_member_type_': <class 'object'>, '_value_repr_': None, '__doc__': None, 'Download': <NotificationType.Download: '\u8d44\u6e90\u4e0b\u8f7d'>, 'Organize': <NotificationType.Organize: '\u6574\u7406\u5165\u5e93'>, 'Subscribe': <NotificationType.Subscribe: '\u8ba2\u9605'>, 'SiteMessage': <NotificationType.SiteMessage: '\u7ad9\u70b9\u6d88\u606f'>, 'MediaServer': <NotificationType.MediaServer: '\u5a92\u4f53\u670d\u52a1\u5668\u901a\u77e5'>, 'Manual': <NotificationType.Manual: '\u624b\u52a8\u5904\u7406\u901a\u77e5'>, '__new__': <function Enum.__new__ at 0x7f6ab0bd7f60>}", "_sort_order_": 1}, "title": "\u5f00\u819b\u8857 (2012) S01 E01 \u5df2\u5165\u5e93", "text": "\u8bc4\u5206\uff1a7.4\uff0c\u7c7b\u578b\uff1a\u7535\u89c6\u5267\uff0c\u7c7b\u522b\uff1a\u6b27\u7f8e\u5267\uff0c\u8d28\u91cf\uff1a BluRay 1080p\uff0c\u51711\u4e2a\u6587\u4ef6\uff0c\u5927\u5c0f\uff1a1.7G", "image": "https://image.tmdb.org/t/p/w500/snSylVifJ29t7mxiIi5dxi6x2q2.jpg", "userid": null}}' | http POST $(uri)/moviepilot
Getting Started
Go to 整理-文件管理, find the download folder that you mounted, and start organizing.