Month: November 2013

  • FlexGet + Transmission + Plex AniDB Agent on macOS

    目標

    • 自動下載新番種子
    • 種子自動加入 Transmission 下載隊列
    • 新番文件自動重命名到 Plex 兼容格式
    • 通過 Plex AniDB agent 自動獲取新番相關信息

    總結:基於 FlexGet 和 Transmission 的全自動追番方案

    實現方法

    • 通過 FlexGet 讀取 RSS,自動下載種子文件,通過正則自動剔除無效字符
    • 通過 FlexGet 的 transmissionrpc 插件自動將種子傳送到 Transmission
    • Transmission 下載完成後觸發腳本,自動將種子重命名為 Plex 可識別格式
    • 通過 Plex 的第三方插件 Hama.bundle 自動獲取新番相關訊息

    配料表

    • 裝有 macOS 的電腦一部
    • Plex
    • Transmission
    • FlexGet

    配置 FlexGet(2021 版)

    最新版本配置採用 FlexGet 內置的 manipulate 方法,對 RSS 直接修改為符合 Plex 查詢標準的文件名,避免了使用 Transmission 調用外掛腳本的方案,下面的正則可根據實際場景進行修改:

      bangumi:
        template: torrent
        manipulate:
          - title:
              # remove underscores
              replace:
                regexp: '_'
                format: ''
          - title:
              replace:
                regexp: '★'
                format: ''
          - title:
              extract: '^[\[【].*?[\]】](.*)'
          - title:
              replace:
                regexp: '【'
                format: '['
          - title:
              replace:
                regexp: '】'
                format: ']'
          - title:
              replace:
                regexp: '】'
                format: ']'
          - title:
              replace:
                regexp: '(?:\[|【)(简体|簡體|繁体|繁體|简日双语|繁日雙語|GB|BIG5|MP4)(?:\]|】)'
                format: ''
          - title:
              replace:
                regexp: '(?:\[|【|第)(\d\d)(?:\]|】|話|话)'
                # format: 's01e\1'
                format: '\1'
          - title:
              # replace `][` to ` ` (space)
              replace:
                regexp: '\]\['
                format: ' '
          - title:
              # remove leftover brackets
              replace:
                regexp: '[\[\]【】]'
                format: ' '
          - title:
              replace:
                regexp: '(?:.*字幕 (?: 组|組))'
                format: ''
          - title:
              replace:
                regexp: '\[(?:.+? 月新? 番)'
                format: ''
        set:
          path: /Volumes/Gizur/Downloads/Anime/{{ series_name }}
          content_filename: '{{ series_name }} - {{ series_id|pad(2) }}'
          magnetization_timeout: 45
        series:
          - スーパーカブ:
              alternate_name: 本田小狼與我 Super Cub
          - ダイナ莊びより:
              alternate_name: 恐龍日和
          - 回復術士のやり直し 〜即死魔法とスキルコピーの超越ヒール〜:

    配置 FlexGet(2013 版,無需再看)

    FlexGet 的安裝方法和自動運行請參考參考 官方文檔,寫的很詳細

    配置文件如下,要點在於 presets.global.transmission.path,為了能讓 Plex 識別和方便管理,每一個動畫 要分別放在相應命名的目錄。其中 {{task}} 對應的就是 tasks 下的新番標題:

    presets:
      global:
        accept_all: true
        transmission:
          host: localhost
          port: 9091
          addpaused: No
          ratio: 0.01
          removewhendone: Yes
          path: "/Volumes/Backups HD/Anime/{{task}}/"
    tasks:
      WHITE ALBUM2:
        rss: http://bt.ktxp.com/rss-search-%E6%BE%84%E7%A9%BA%E5%AD%A6%E5%9B%AD+%E7%99%BD%E8%89%B2%E7%9B%B8%E7%B0%BF+2+MP4+720p.xml
      アウトブレイク・カンパニー:
        rss: http://bt.ktxp.com/rss-search-%E6%BE%84%E7%A9%BA%E5%AD%A6%E5%9B%AD+%E8%90%8C%E8%90%8C%E4%BE%B5%E7%95%A5%E8%80%85+MP4+720p.xml
      ガリレイドンナ:
        rss: http://bt.ktxp.com/rss-search-%E6%BE%84%E7%A9%BA%E5%AD%A6%E5%9B%AD+%E4%BC%BD%E5%88%A9%E7%95%A5%E5%B0%91%E5%A5%B3+%E7%AE%80%E4%BD%93+MP4+720p.xml
      キルラキル:
        rss: http://bt.ktxp.com/rss-search-%E6%A5%B5%E5%BD%B1%E5%AD%97%E5%B9%95%E7%A4%BE+Kill+La+Kill+BIG5+MP4+720p.xml
      京騒戯画:
        rss: http://bt.ktxp.com/rss-search-WOLF+%E4%BA%AC%E9%AA%9A%E6%88%8F%E7%94%BB+GB+720P+MP4.xml
      凪のあすから:
        rss: http://bt.ktxp.com/rss-search-%E5%8B%95%E6%BC%AB%E5%9C%8B+%E4%BE%86%E8%87%AA%E9%A2%A8%E5%B9%B3%E6%B5%AA%E9%9D%9C%E7%9A%84%E6%98%8E%E5%A4%A9+720P+%E7%B9%81%E9%AB%94+MP4.xml
      境界の彼方:
        rss: http://bt.ktxp.com/rss-search-%E6%BE%84%E7%A9%BA%E5%AD%A6%E5%9B%AD+%E5%A2%83%E7%95%8C%E7%9A%84%E5%BD%BC%E6%96%B9+%E7%AE%80%E4%BD%93+MP4+720p.xml
      夜桜四重奏 ~ハナノウタ~:
        rss: http://bt.ktxp.com/rss-search-%E6%A5%B5%E5%BD%B1%E5%AD%97%E5%B9%95%E7%A4%BE+%E5%A4%9C%E6%AB%BB%E5%9B%9B%E9%87%8D%E5%A5%

    配置 Transmission

    如果使用了 2021 版的方案,請略過本段

    Transmission 本身不需要進行過多配置,為了避免下載隊列越來越多,記得勾選下載完成後從隊列刪除這個選項。下面是其對應的 post-process 腳本:

    #!/bin/sh
    
    # Search all subdirectories
    # Use rename -n for dry-run
    cd /Volumes/Backups\ HD/Anime
    find . -name '*.mp4' -print0 | xargs -0 /usr/local/bin/rename -f 's/\[(.*)\]\[(.*)\]\[(\d{2})\].*$/$2 - $3\.mp4/'

    上述腳本會通過正則將 [Fansub][Title][Episode]*.mp4 這樣的格式替換為 Plex 可識別的 Title - Episode.mp4 格式,例如 [WOLF&HYSUB][Kyousougiga][00][GB][720P][MP4].mp4 就會被替換為 Kyousougiga - 00.mp4

    配置 Plex w/ Hama Agent

    注意!,已棄用 AniDB agent,改為 Hama Agent 。詳情請訪問最新文章:Hama (HTTP Anidb Metadata Agent) and Plex Media Server – 2014-04-09

    訪問 Plex 論壇 下載 AniDB agent 并安裝,通過 Plex 的 web 界面進行管理即可

    完成配置後可通過下列指令進行 dry run 測試:

    flexget -c ~/.flexget/config.yml --test execute

    以下是效果圖: