『Instagramアカウントのインプレッションを増やしたい。しかし、最初はなかなか難しく、「もっと人の目に触れさせなければいけないな」』、と感じている人は多いはず。なにせ、いくら良い写真を上げても人の目に触れなければ意味がないのだ。

Instagram(インスタグラム)の運用に使用するサービスは数多くあるが、無料のものはほぼない。

そこで、オープンソースであるPython製Botを使用し、Instagramの自動運用を無料で行う方法を紹介したいと思う。

前提

本記事で紹介するプログラムは、ウェブアプリケーションとして会員登録をしクラウド上で管理するものではなく、自身で設定を行い稼働させるものである。

したがって、以下の前提があるものとする。

  • Pythonに関し少なくともいじれる程度は理解できていること
  • すでにサーバー契約が行われていること
  • Google Cloudなどで無料サーバーを立ち上げられること

上記は、ほぼ必須条件である。

ただし、画像付きでプログラムを稼働させる方法を記述していくので、初心者の方でも全く問題はない。

使用するプログラム

Instabot.pyというプログラムを使用する。

Githubで公開されているので、Zipファイルをダウンロード・解凍するか、Cloneして使用する。

「AI搭載のなんちゃら」といったサービスが出ているが、AIなど必要ない。Like、Follow、Unfollow、Comment程度で露出を高めるのは十分。画像の投稿やDMといった部分は、人間が行ったほうが良いだろう。

メリット

クラウドで動作する有料(30ドルほどする)サービスと比較した、Instabot.pyの利点をいくつか挙げてみる。

  • 自身のサーバーまたはローカル環境で実行するため、IDやパスワードが漏洩する可能性は非常に低い
  • カスタマイズ製が非常に高い
  • 無料である!
  • 無駄なメールマガジンなどが送られてこない
  • プログラムの勉強になる

デメリット

メリットを上げたので、デメリットも挙げなければならない。

  • 自身で設定しなければならない
  • 常時稼働させる場合はサーバーを用意しなければならない

こんなところだろうか。自身で設定・設置しなければならない以外は、特にデメリットはないと思う。

使用方法

では、インストール、設置方法、各パラメーターの意味、実行といった流れで解説したいと思う。

この例では、僕が契約しすでにサイトが実行しているMixhostというサーバーで動作させる。VPSやクラウドでも問題ない。環境はCentOSやUbuntuといったLinuxである。Windowsの方は、Youtubeに動画が上がっていたので、それを掲載しておく。

Mixhostは、CPanelという管理画面なのでが、これが非常に直感的で分かりやすいのでオススメしたい。Wordpressサイトを作りたい方も、非常に高速なので契約して損はない。

Anacondaをインストール

まずは、レンタルサーバーにPython3がインストールされていなければならない。

今回はMixhostを使用しているが、その他レンタルサーバーでも「SSH接続」というものがあるはずなので、同じようにコマンドラインから操作していく。

MixhostのCPanelにログインしたら検索Boxに「Terminal」と入力し、ウェブから操作するコマンドラインを表示させる。

Terminalを開けたら、以下の様な表示がされているはず。

(base) [[email protected] ~]$

Pythonのバージョンを調べてあげよう。

(base) [[email protected] ~]$ python --version
Python 2.7.3

上記のようにPython2で表示されるはず。最新のPythonはPython3であり、今回動作させるInstabot.pyもPython3で記述されているため、Python3をインストールする。

Instabot.py以外でも、PandasやNumpyなどをいじれたほうが便利なのでAnacondaをインストールしていこう。適当なフォルダを作ってやり、そこに移動する。

$ mkdir python
$ cd python/

上記のように、作成したフォルダに移動した後、Anacondaをインストールしていく。基本的に、どのサーバーもCentOSやUbuntuなどのLinux環境で動作している。したがって、以下のコマンドでLinux版Anacondaをサーバーにインストールする。

$ wget https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh
$ bash Anaconda3-2018.12-Linux-x86_64.sh


Welcome to Anaconda3

Please, press Enter to continue
>>>

続けるにはエンターを押してくれと書いてあるので、エンターを押してやる。エンターを押すと、Anacondaのライセンスがズラーっとコマンドライン上に表示されるので、ひたすらエンターで進んで行く。

そうすると、「Do you accept the licence terms? [yes | no]」と聞かれるので「yes」を入力。パスについて聞かれるので、特に変更せずエンターを押す。

VSCodeをインストールするか聞かれるが、レンタルサーバー上には必要ないため[no]でOK。

その後、Anacondaを初期化して良いか確認されるので[yes]とする。

installation finished. 
Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no] [no]
>>>yes
Thank you for installing Anaconda3!

上記のメッセージが表示されれば、Anacondaのインストールは完了。Anacondaが使用できるように、.bashrcを再読込してあげる。

$ source ~/.bashrc

Anacondaが使用できるか確認するため、以下コマンドを入力してあげよう。

$ conda --version
conda 4.6.11

上記のように、Anacondaのバージョンが表示されれば成功だ。

設置方法

本来は、設置する環境毎に仮想環境を作ってあげたほうが良いのだが、少し面倒なので省く。

現在、作成したフォルダ(python)にいると思うが、その中に使用するInstagramアカウントのフォルダを作成し移動してあげよう。

$ mkdir hogehoge
$ cd hogehoge/

その後、アカウントのフォルダにInstabot.pyをインストールしていく。以下のURLにInstabot.pyのGithubリポジトリがある。

https://github.com/instabot-py/instabot.py

「Clone or download」クリックし、CloneするURLをコピーしよう。以下のコマンドでクローンする。

$ git clone https://github.com/instabot-py/instabot.py.git
Cloning into 'instabot.py'…
remote: Enumerating objects: 1760, done.
remote: Total 1760 (delta 0), reused 0 (delta 0), pack-reused 1760
Receiving objects: 100% (1760/1760), 657.09 KiB | 1.05 MiB/s, done.
Resolving deltas: 100% (1020/1020), done.

インストール完了。Botに指示し自動化する内容を設定するため、example.pyを編集したい。コマンドラインからVimで編集してもいいが、VSCodeやAtomなどの方が書き込みやすいので、FTPクライアントからexample.pyを編集する。

Filezillaなどからレンタルサーバーに接続し、作成したフォルダに移動。example.pyを編集する。

アカウント用に作成したフォルダにInstabot.pyをクローンしているので、Instabot.pyというフォルダを見つけられるはず。以下のようなファイル群があれば成功している。

ファイルの中に、example.pyがあるのでテキストエディタで開こう。

上記のようなプログラムを見ることができる。各パラメーターの意味は次章で解説するので、ここでは割愛する。

では、レンタルサーバーのコマンドラインに戻ろう。

Instabot.pyに限らず、多くのPythonプログラムは複数のPipが使用されており、クローンした先の環境に同様のPipが入っていないとプログラムを動かすことができない。よって、Pipをまとめてインストールしていこう。

現在Instagramアカウントのフォルダにいると思うが、instabot.pyフォルダに移動する。同包されているファイルをみるため、lsコマンドを入力する。

$ cd instabot.py/
$ ls
Dockerfile         LICENSE    example.py           instabot_py   setup.cfg  tests
 ISSUE_TEMPLATE.md  README.md  instabot.config.yml  requirements  setup.py   version.txt

requirementsに必要なPipが記述されている。

$ cd requirements/
$ ls
base.txt ci.txt misc-deps.txt tests.txt

Githubで確認すると、base.txtにすべて記載されているよう。

したがって、以下のコマンドで必要なPipをインストールする。

$ pip install -r base.txt

あとは、example.pyを編集するだけだ。

各パラメーターの意味

example.pyの中身は以下の通り。


from instabot_py import InstaBot

#username:自分のアカウント名
#passward:自分のパスワード
#like_per_day:1日にいいねする数
#comments_per_day:1日にコメントする数
#tag_list:いいねするハッシュタグリスト
#tag_blacklist:入っていたら、いいねしないハッシュタグリスト
#user_blacklist:ユーザーのブラックリスト
#max_like_for_one_tag:1つのタグに対して最大どのくらいいいねするか
#follow_per_day:1日にフォローする数
#unfollow_per_day:1日にアンフォローする数
#unfollow_break_min:最小でどのくらいフォロワーを減らすか
#unfollow_break_max:最大でどのくらいフォロワーを減らすか
#log_mod:0=コンソールにログを表示 1=ファイルにログを残す 2=ログ残さない

bot = InstaBot(
     login="username",  # Enter username (lowercase). Do not enter email!
     password="password",
     like_per_day=1000,
     comments_per_day=0,
     tag_list=["follow4follow", "f4f", "cute", "l:212999109"],
     tag_blacklist=["rain", "thunderstorm"],
     user_blacklist={},
     max_like_for_one_tag=50,
     follow_per_day=300,
     follow_time=1 * 60 * 60,
     unfollow_per_day=300,
     unlike_per_day=0,
     unfollow_recent_feed=True,
     # If True, the bot will also unfollow people who dont follow you using the recent feed. Default: True
     time_till_unlike=3 * 24 * 60 * 60,  # 3 days
     unfollow_break_min=15,
     unfollow_break_max=30,
     user_max_follow=0,
     # session_file=False, # Set to False to disable persistent session, or specify custom session_file (ie ='myusername.session')
     user_min_follow=0,
     log_mod=0,
     proxy="",
     # List of list of words, each of which will be used to generate comment
     # For example: "This shot feels wow!"
     comment_list=[
         ["this", "the", "your"],
         ["photo", "picture", "pic", "shot"],
         ["is", "looks", "is 👉", "is really"],
         [
             "great",
             "super",
             "good",
             "very good",
             "good",
             "wow",
             "WOW",
             "cool",
             "GREAT",
             "magnificent",
             "magical",
             "very cool",
             "stylish",
             "beautiful",
             "so beautiful",
             "so stylish",
             "so professional",
             "lovely",
             "so lovely",
             "very lovely",
             "glorious",
             "so glorious",
             "very glorious",
             "adorable",
             "excellent",
             "amazing",
         ],
         [".", "🙌", "… 👏", "!", "! 😍", "😎"],
     ],
     # Use unwanted_username_list to block usernames containing a string (文字列を含むユーザー名をブロックするにはunwanted_username_listを使用する)

     # Will do partial matches; i.e. 'mozart' will block 'legend_mozart' (部分一致。すなわち'mozart'は 'legend_mozart'をブロックする)

     # 'free_followers' will be blocked because it contains 'free'('free_followers'には 'free'が含まれているためブロックされる)

     unwanted_username_list=[
         "second",
         "stuff",
         "art",
         "project",
         "love",
         "life",
         "food",
         "blog",
         "free",
         "keren",
         "photo",
         "graphy",
         "indo",
         "travel",
         "art",
         "shop",
         "store",
         "sex",
         "toko",
         "jual",
         "online",
         "murah",
         "jam",
         "kaos",
         "case",
         "baju",
         "fashion",
         "corp",
         "tas",
         "butik",
         "grosir",
         "karpet",
         "sosis",
         "salon",
         "skin",
         "care",
         "cloth",
         "tech",
         "rental",
         "kamera",
         "beauty",
         "express",
         "kredit",
         "collection",
         "impor",
         "preloved",
         "follow",
         "follower",
         "gain",
         ".id",
         "_id",
         "bags",
     ],
     unfollow_whitelist=["example_user_1", "example_user_2"],
     # Enable the following to schedule the bot. Uses 24H
     # end_at_h = 23, # Hour you want the bot to stop
     # end_at_m = 30, # Minute you want the bot stop, in this example 23:30
     # start_at_h = 9, # Hour you want the bot to start
     # start_at_m = 10, # Minute you want the bot to start, in this example 9:10 (am).
 )

bot.mainloop()

上記の基本プログラムを、自身の好きなように変えてあげるだけ。

コメントなどが要らなければ、全て消してあげれば良い。

「unwanted_username_list」には、対象としない文字列を記述していく。SEX、Free、IDなどはLike、Comment、Followの対象外としたいので、デフォルト設定で問題ない。

実行

コマンドラインに戻り、アカウントのinstabot.pyディレクトリにいることを確認する。以下のコマンドを入力するだけで、Botが起動するはずだ。

$ python example.py

以下のような文字列が表示されれば成功である。

INFO:instabot_py.config:Setting configuration from instabot.config.yml : OK
2019-06-21 09:20:49,655 - InstaBot - INFO - Checking for updates…
2019-06-21 09:20:50,235 - InstaBot - INFO - You are running the latest stable version

プログラムを止めたい時は、「Ctrl + c」を入力するだけ。

Windows

Windowsで実行したいユーザーは、以下の動画を見てほしい。パラメーターなどは変わらない。

まとめ

非常に簡単にInstagramで、Like、Comment、Follow、UnFollowを自動化することができた。

アカウントのインプレッションが上がるまでは、泥臭い方法でアカウントを活発化させると人の目に触れやすくなる。多くのフォロワーを抱えるまではプログラムにより自動化させることで、投稿するコンテンツに集中できるようになるはず。

AIがなんちゃなら、というようなサービスにお金を払ってしまっている人は解約していいと思う。

Instabot.pyはPythonが分かることを前提としているが、僕のブロックにある通りコピペすれば良い。Pythonの勉強がてら、触ってみると良い経験になる。

追記

GCP(Google Cloud Platform)のGoogle Compute Engineで、永久無料枠が設定されていたため、そちらを筆者は使用することにした。

Google Compute Engineの無料枠は以下の通り。

  • f1-micro インスタンス(1 か月あたり、北バージニア [us-east4] を除く米国リージョンのみ)
  • 30 GB-月の HDD
  • 5 GB-月のスナップショット(一部のリージョン)
  • 1 GB の北米から全リージョン宛ての下りネットワーク(1 か月あたり、中国とオーストラリアを除く)

つまり、f1-microの1インスタンス、ストレージ容量を30GBにすれば、課金がされないのだ。これは、利用するしか無い。

イメージでUbuntuを選択し、インスタンス作成後SSHで接続する。その後の手順は以下の通り。

流れ

Anacondaのインストールは上述しているので、詳細は省いている。

  1. Anacondaをインストール
  2. pipをインストール
  3. gitをインストール
  4. ライブラリ各種をインストール
  5. example.pyを実行

コード

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get 

$ wget https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh

$ bash Anaconda3-2018.12-Linux-x86_64.sh

$ export PATH=~/anaconda3/bin:$PATH

$ sudo apt install python-pip python3-pip

$ sudo apt-get install git

$git clone https://github.com/instabot-py/instabot.py.git

$ cd intabot.py/

$ cd requirements/

$ pip3 install -r base.txt

$ cd ..

$ vi example.py(各情報を記入)

$ python3 example.py

これだけだ!先に、「sudo su - 」でroot化してしまってもよいだろう。

You May Also Like
Firefox Send
続きを読む

無料で2.5GBのデータを簡単に送信できる暗号化ファイル共有サービス『Firefox Send』が超便利!

手元のデータを、誰か他人へ送信しなければならないケースがあるとしよう。 この時、データは永遠に残るものではなく、できれば一週間後に消滅してほしかったりする。これは、相手がデータを受け取った後、その情報を漏洩させたくないか…