Ubuntu 18.04 LTS で CLI から JDownloader2 を用いる方法

大前提

  • CLIオンリーの環境でのやりかたを示しています
    • GUI環境がある場合にはより良いやりかたがあるかと思います
  • Webサービスである My JDownloader と連携します
    • [ユーザのクライアント] <-----> [My JDownloader] <-----> [ダウンロード先] という構造になり、My JDownloader は「ユーザのクライアント」と「ダウンロード先」のデータをつなぐバイパスとして働きます
    • My JDownloader のアカウント作成は各自で行って下さい

gyazo.com

  • ダウンロード URL などの各種情報は My JDownloader に登録します
    • ダウンロードを実行する命令もそちらで出します
  • URLの登録などには、公式の Chrome 拡張機能が便利です
    • Chrome 拡張機能の注意点として、URL を展開してダウンロードする*1場合は、「該当テキスト部分をぐりっと選んだ状態で、コンテキストメニューから『送る』」必要があります
      • つまり、リンクのテキストにポインタをホバーして「送る」ではダメだということです

chrome.google.com

環境構築

実際に環境を構築します。構築には Docker を用います。

github.com

ドキュメントに書いてあるとおりで問題ないと思います。以下のコマンドを実行すれば JDownloader 自体は一発で構築完了です。

$ docker run -d --restart=always -v ~/Downloads:/root/Downloads -v ~/jdownloader/cfg:/opt/JDownloader/cfg --name jdownloader -u $(id -u) jaymoulin/jdownloader

次に、My JDownloader で登録したアカウントを設定します。ドキュメントどおり、以下のコマンドで OK です。

$ docker exec jdownloader configure email@email.com password

私の場合は以下のようにディレクトリ名(場所)を微修正して、自分に使いやすくしています。以下のように /opt に置く場合はパーミッションの問題が出てきますので、適宜 sudo で実行するか、ディレクトリのパーミッションを変更して下さい。My JDownloader のアカウント設定時にも同様にパーミッションの問題が出てくる可能性がありますので*2、同様にして対応して下さい。

$ docker run -d --restart=always -v /opt/JDownloader/Downloads:/root/Downloads -v /opt/JDownloader/cfg:/opt/JDownloader/cfg --name jdownloader -u $(id -u) jaymoulin/jdownloader

上記の環境が構築できれば、My JDownloader 側でクライアントが認識されます。設定完了です。

gyazo.com

ダウンロード方法

ファイルをダウンロードするためには My JDownloader の UI の LINKCOLLECTOR から URL を登録し、実際にダウンロードするものをそこから DOWNLOADS に登録(移動)します。スタンドアロン版と同様の操作です。

gyazo.com

特定のフォルダを監視し、そのフォルダ配下にダウンロード指示のファイルが置かれたら自動でダウンロードさせる

Extension ManagerFolder Watch という Extension を有効にすると*3、特定のフォルダを一定間隔で監視してくれて、そのフォルダにダウンロードを指示するファイル(拡張子が .crawljob)が存在する場合に自動でダウンロードさせることができます。

Folder Watch の設定画面は以下のとおりです。監視対象は配列で書けます。フルパスで書くのが確実でしょう。例えば、["/opt/JDownloader/Downloads/folderwatch"] などのようにです。

Check Interval の数値は、監視の間隔をミリ秒単位で指定する箇所になります。

gyazo.com

gyazo.com

「ダウンロードを指示するファイル」の書き方

前述の Folder Watch 機能における「ダウンロードを指示するファイル」の書式に関する情報は、以下のページに載っています。昔は JSON 形式だったようですが、現在はシンプルな設定ファイル形式*4になっています。

もっとも簡単な書き方の一つだと、以下のようになります。

text=https://example.com/path/to/foobar.jpg

enabled=true
autoStart=true
forcedStart=true
autoConfirm=true

設定ファイルの中に書くことができる「フィールド」は前述のページより、以下のとおりです。

### Available Fields:

# enabled Type: BooleanStatus
# enabled = null
# comment Type: String
# comment = null
# priority Type: Priority
# priority = null
# text Type: String
# text = null
# chunks Type: int
# chunks = 0
# downloadPassword Type: String
# downloadPassword = null
# type Type: JobType
# type = NORMAL
# downloadFolder Type: String
# downloadFolder = null
# overwritePackagizerEnabled Type: boolean
# overwritePackagizerEnabled = true
# packageName Type: String
# packageName = null
# filename Type: String
# filename = null
# autoStart Type: BooleanStatus
# autoStart = UNSET
# addOfflineLink Type: boolean
# addOfflineLink = true
# autoConfirm Type: BooleanStatus
# autoConfirm = UNSET
# forcedStart Type: BooleanStatus
# forcedStart = UNSET
# extractAfterDownload Type: BooleanStatus
# extractAfterDownload = UNSET
# extractPasswords Type: String[]
# extractPasswords = null
# deepAnalyseEnabled Type: boolean
# deepAnalyseEnabled = false

.crawljob ファイルが正しく読み取られると、.crawljob ファイルを置いたディレクトリに added というディレクトリが作られ、そこに読み取り済みの .crawljob が自動で移動されます。

自動でダウンロードを発動させるための設定

デフォルトでは、手動であれ .crawljob 経由であれ、ダウンロード対象の URL を登録しただけでは実行待ちの状態になるだけであり、実際にダウンロードがはじまりません。登録したらすぐにダウンロードを開始させたい場合は設定を変更する必要があります。

Webインターフェイスの設定から「Advanced Settings」を選びます。

gyazo.com

設定可能項目が無数に出てきますので「auto」というワードで絞り込みをかけます。

gyazo.com

以下のあたりを設定すると良いでしょう。

  • GeneralSettings: Autoadd Links After Linkcheck
  • LinkgrabberSettings: Linkgrabber Auto Confirm
  • LinkgrabberSettings: Auto Confirm Manager Clear List After Confirm
  • LinkgrabberSettings: Auto Confirm Manager Assign Priority

補足点

自動でアーカイブを展開してくれる機能はオフにしたほうがいい

自動でアーカイブを展開してくれる機能は、失敗などをするとダウンロードがすべてそこで止まったり、リフレッシュしてから再ダウンロードをしないと正しく再ダウンロードできなかったりするので、オフにしました。

gyazo.com

「Ask me」が残っていると途中で対話が発生して止まる

設定内容選択肢で「Ask me」が設定されている項目があると、その項目に該当した際に対話が発生してダウンロードが止まります。対話の解決のためには My JDownloader に入って回答する必要があります。

多少の危険性はありますが、これを私はすべてオフにしました。

gyazo.com

My JDownloader の反応が悪く、設定が反映されていないことがある

My JDownloader の設定項目は原則として書き換えたらすぐに反映される形式ですが、反映されていないことがあります*5。これを防ぐ方法は、一度設定を変更した後に、さらに設定を変更(上書き)する 方法です。書き換えた場合には右側に「もとに戻す」ための黄色いアイコンが出ますので、参考になります。

gyazo.com

My JDownloader はけっこう重いので、表示がおかしかったらリロードをしてみてください

他の OS でもいけるはず

CentOS や Raspbian でも行けると思います。Dockerのイメージ元では、Raspbian で動かすことを想定している記述がいくつか見受けられます。

.dlc を作るための gem が存在する

ダウンロード情報を詰め込んで難読化した .dlc ファイルを自分で作るための gem が存在します。Ruby を用いてバッチ処理を書く際に便利かもしれません*6

github.com

*1:対象の URL は別の URL に置き換えられる

*2:JDownloader/cfg 配下のファイルに書き込みを行うため

*3:=「表示が Disable ✗ という表示になっている状態にすると」

*4:.git/config などと同様の形式

*5:これで結構ハマりました

*6:ただし、メンテはされていないようです

Powered by はてなブログ