常駐監視型 Twitter メディアダウンローダー「berryjack/win32」

投稿者: | 2015年7月15日

bjw32

Twitter の常駐監視型メディアダウンローダー berryjack の Windows 移植版を作成しました。品質無保証の人柱版として公開します。

概要

監視対象となるアカウントを定期的に巡回して、メディアファイル(画像、動画ファイル)が投稿されていたら自動的にダウンロードしてくれます。投稿されたメディアファイルを一括ダウンロードする点では、他の Twitter ダウンローダーと変わりがありませんが、起動しておくだけで複数のアカウントを定期的にチェックしてくれるところが大きな特徴です。

また、HTTP 経由でメディアタイムラインのみを取得するため、ツイート全文を取得する Twitter API 経由でのアクセスよりも少ないトラフィックで済み、直近 3200 ツイートしか取得できないという制限がないという特徴もあります。

各国の報道機関や犯罪組織の声明など発信される情報が注視されるようなアカウントや、イベントなどで期間限定のアカウントなどを監視するのに最適です。

ダウンロード

使い方

  1. 「list.txt」に監視対象のアカウントを1行に1つずつ書いて保存します。たとえば、アカウント「@AbeShinzo」「@tenkijp」「@jaxa_jp」「@pamyurin」の4つのアカウントを監視したい場合は、下記のように書きます。「@」マークはあってもなくても良いです。

bjw32_list

  1. バッチファイル「start-bjw.bat」をダブルクリックして実行します。コマンドプロンプトが起動して、ダウンロードが開始されます。ダウンロードした画像と動画ファイルは、download フォルダ内にアカウント毎に保存されます。

  2. 終了するには、コマンドプロンプトを閉じます。閉じるまで、ずっと監視&ダウンロードが実行されます。

注意事項・免責など

このバージョンは人柱版です。自己責任でお使いください。 このソフトを利用して発生したいかなる不具合、不都合も作者は責任を負うことができません。 また、Twitter やその他のサーバーに負荷をかけるような設定、運用は絶対に行なわないでください

ライセンス情報等は、配布しているアーカイブファイル内に同梱しています。

常駐監視型 Twitter メディアダウンローダー「berryjack/win32」」への11件のフィードバック

  1. ピンバック: Twitterの画像を一括ダウンロードするシェルスクリプト「berryjack」を書いた。 | dyama's page

  2. gori

    いつも拝見させていただいてます。

    berryjackについてですが、リスト.txtに複数のアカウントを入れたところ、1アカウント分の過去メディアはダウンロードされるのですが、その後他のアカウントに対しては過去メディアがダウンロードされません。
    また、要望なのですが、フォルダをアカウントごとに分けるか、すべて同じフォルダに入れるかどうかの機能があればうれしいです。

    OCCTについても、現在勉強中で、とても参考にさせて頂いています。

    返信
    1. dyama 投稿作成者

      goriさん

      リプライが遅くなってすみません。バグ報告ありがとうございました。
      2番目以降に取得する際のパラメータの初期化が抜けていたようです。修正版に差し替えていますのでお試しください。

      > フォルダをアカウントごとに分けるか、すべて同じフォルダに入れるかどうか

      今のところ berryjack/w32 は GUI を搭載していないので、スクリプト書き換えで対応することができます。
      同梱の bin/bjw.sh をテキストエディタで開き、18行目の

      udir="$dir/$id"

      udir="$dir"

      に書き換えて保存すると、すべてのメディアを同一ディレクトリにダウンロードするようにできます。

      > OCCTについても、現在勉強中で、とても参考にさせて頂いています。

      ありがとうございます。
      OCCT 日本語フォーラムを作ってますので、よろしければどうぞ!

      返信
    2. wjk

      はじめまして。いつも拝見させていただいております。
      berryjackについてなのですが、画像はダウンロードできますが、動画がダウンロードできません。
      30秒の短い動画ですのでmp4だと思います。
      どうしたらよいでしょうか?よろしくお願いします。

      返信
  3. ME

    Really thank you for the program’s creation, It has been very helpful to my need.
    I have a request on the program though, is it possible to modify the script to download original/large-sized images, instead of the smaller size one? Would be really helpful as some of the images I wanted to browse ended up being not readable in a smaller size. Thank you!
    (I’m a foreigner who can read but don’t have confident on speak correct Japanese, so really sorry for posting comment with English. ご迷惑はすみませんでした。)

    返信
    1. dyama 投稿作成者

      ME-san

      Hi, thanks for your post!

      You can download another size images with small fix for the script.

      1. Open bin/bjw.sh with a text editor.

      2. Add “:orig”, “:large”, “:small” or “:thumb” to end of line at 31.

      Example,


      $wget -q $opt -nc -P "$udir" $n:orig

      these keywords means;

      • :orig … Original size
      • :large … Large size
      • :small … Small size
      • :thumb … Thumbnail size

      Do not insert a whitespaces to between `$n` and `:orig`.

      3. Save bjw.sh and run it.

      Enjoy!

      返信
  4. ぐち

    いつも利用させていただいております。
    シェルスクリプトの勉強にもなり、大変参考にさせていただいております。

    先日のTwitterの動画仕様の変更により、
    Bashスクリプトの方が最新版となっているようで、
    参考にしてbusyboxの方でも使えるように自前で修正してみようとは思いましたが、
    力不足で頓挫してしまいました。

    ashだと配列を扱えないようなので、そこの互換が初心者には難しいようです。
    ご指南いただくことは可能でしょうか。

    返信
    1. dyama 投稿作成者

      ぐちさん

      コメントありがとうございます。
      先日 Github の方で issue を受け、ご指摘のとおり Bash スクリプト版は修正を施してちゃんと動いているみたいですが、busybox の ash では確認していませんでした。

      配列を使っているのはちょうどこの辺りのことですよね?

      https://github.com/dyama/berryjack/blob/62a538072e6200c6e0be5a2b6653118bfe2f2021/berryjack#L123

      具体的な `$line` の内容は忘れましたが、確か

      hogehoge/fugaguga/1234567890

      という文字列を、 `tr` で

      hogehoge fugafuga 1234567890

      に加工して `$item` に配列として入れた後、ビデオIDとなる `1234567890` の部分を `$stat` に代入している挙動ですね。

      item=($(echo "$line" | tr / ' '))
      stat=${item[2]}

      という2行は、単に

      stat=$(echo "$line" | cut -d'/' -f3 )

      と置き換えてもOKです。ash でも動作しました。

      `$item[0]` や `$item[1]` も使うかなあ?と、とりあえず配列で受け取っておいて結局使わなかった文が残っていたようです。すいません。わざわざ bash 固有の文法を入れておくのも何なので、bash 版も修正しておきます。

      さて、Windows 版も修正を…と言いたいところですが、今後のメンテを考えると Github に移しておいてもいいかなと思っています。もともと移植性を考えた上でシェルスクリプトのみで実装しようと思ってましたが、Windows まで含めたポータビリティを維持しようとなると、やっぱりRuby や Perl で実装していた以前の API 版の方が公開には向いているのかもしれないとも思っています。Windows subsystem for Linux なんかもありますが、どうなんだろう…。

      返信
      1. さと

        上記コメントを参考にさせていただき、実際にwin32版ではなく
        Windows subsystem for Linux上でBashスクリプト版を使用させていただきました。
        ただ、やはり動画に関してはダウンロードができないようです。
        さらにTwitter側で仕様変更がされているのでしょうか?
        ご教示いただけますと幸いです。

        返信
  5. sh

    はじめまして,最近berryjackを知り使わせていただいております.
    上記でも既に質問されていることなのですが,orig等の画像サイズを変えて保存させるには
    どのようにbjw.shに書き込めばよいのでしょうか?
    こういったものに疎く,英文を読んで何度か試したのですが上手くいきませんでした.
    お手数をお掛けしますが何卒宜しくお願い致します.

    返信
  6. 匿名

    はじめまして。最近使い初めましてとても使いやすいのですが、元画像のjpg-origの状態でダウンロード出来るように出来ないでしょうか?

    返信

コメントを残す

メールアドレスが公開されることはありません。