MoviePilot

May 13, 2024

Repo: https://github.com/jxxghp/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.

Hard Links

Reference: https://3facfe.com/posts/nastool-and-hard-link/


[back]