大前提
- CLIオンリーの環境でのやりかたを示しています
- GUI環境がある場合にはより良いやりかたがあるかと思います
- Webサービスである My JDownloader と連携します
[ユーザのクライアント] <-----> [My JDownloader] <-----> [ダウンロード先]
という構造になり、My JDownloader は「ユーザのクライアント」と「ダウンロード先」のデータをつなぐバイパスとして働きます- My JDownloader のアカウント作成は各自で行って下さい
- ダウンロード URL などの各種情報は My JDownloader に登録します
- ダウンロードを実行する命令もそちらで出します
- URLの登録などには、公式の Chrome 拡張機能が便利です
- Chrome 拡張機能の注意点として、URL を展開してダウンロードする*1場合は、「該当テキスト部分をぐりっと選んだ状態で、コンテキストメニューから『送る』」必要があります
- つまり、リンクのテキストにポインタをホバーして「送る」ではダメだということです
- Chrome 拡張機能の注意点として、URL を展開してダウンロードする*1場合は、「該当テキスト部分をぐりっと選んだ状態で、コンテキストメニューから『送る』」必要があります
環境構築
実際に環境を構築します。構築には Docker を用います。
ドキュメントに書いてあるとおりで問題ないと思います。以下のコマンドを実行すれば 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 側でクライアントが認識されます。設定完了です。
ダウンロード方法
ファイルをダウンロードするためには My JDownloader の UI の LINKCOLLECTOR
から URL を登録し、実際にダウンロードするものをそこから DOWNLOADS
に登録(移動)します。スタンドアロン版と同様の操作です。
特定のフォルダを監視し、そのフォルダ配下にダウンロード指示のファイルが置かれたら自動でダウンロードさせる
Extension Manager
で Folder Watch
という Extension を有効にすると*3、特定のフォルダを一定間隔で監視してくれて、そのフォルダにダウンロードを指示するファイル(拡張子が .crawljob
)が存在する場合に自動でダウンロードさせることができます。
Folder Watch の設定画面は以下のとおりです。監視対象は配列で書けます。フルパスで書くのが確実でしょう。例えば、["/opt/JDownloader/Downloads/folderwatch"]
などのようにです。
Check Interval
の数値は、監視の間隔をミリ秒単位で指定する箇所になります。
「ダウンロードを指示するファイル」の書き方
前述の 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」を選びます。
設定可能項目が無数に出てきますので「auto」というワードで絞り込みをかけます。
以下のあたりを設定すると良いでしょう。
GeneralSettings: Autoadd Links After Linkcheck
LinkgrabberSettings: Linkgrabber Auto Confirm
LinkgrabberSettings: Auto Confirm Manager Clear List After Confirm
LinkgrabberSettings: Auto Confirm Manager Assign Priority
補足点
自動でアーカイブを展開してくれる機能はオフにしたほうがいい
自動でアーカイブを展開してくれる機能は、失敗などをするとダウンロードがすべてそこで止まったり、リフレッシュしてから再ダウンロードをしないと正しく再ダウンロードできなかったりするので、オフにしました。
「Ask me」が残っていると途中で対話が発生して止まる
設定内容選択肢で「Ask me」が設定されている項目があると、その項目に該当した際に対話が発生してダウンロードが止まります。対話の解決のためには My JDownloader に入って回答する必要があります。
多少の危険性はありますが、これを私はすべてオフにしました。
My JDownloader の反応が悪く、設定が反映されていないことがある
My JDownloader の設定項目は原則として書き換えたらすぐに反映される形式ですが、反映されていないことがあります*5。これを防ぐ方法は、一度設定を変更した後に、さらに設定を変更(上書き)する 方法です。書き換えた場合には右側に「もとに戻す」ための黄色いアイコンが出ますので、参考になります。
My JDownloader はけっこう重いので、表示がおかしかったらリロードをしてみてください
他の OS でもいけるはず
CentOS や Raspbian でも行けると思います。Dockerのイメージ元では、Raspbian で動かすことを想定している記述がいくつか見受けられます。
.dlc を作るための gem が存在する
ダウンロード情報を詰め込んで難読化した .dlc ファイルを自分で作るための gem が存在します。Ruby を用いてバッチ処理を書く際に便利かもしれません*6。