Ubuntuのデスクトップをニコニコ生放送で9割全自動配信してみるよ

自動化/自動操作Selenium, 生放送

この前の記事では、Viqoというソフトウェアを使って半自動のニコ生配信BOTを作成しましたが、今回は9割自動のニコ生配信BOTをPythonで書いてみたので、載せておこうと思います。主な使用技術はSeleniumです。

今回掲載するコードは限りなく最低限の機能だけを実装したものなので、まだ実用に耐えられる代物ではありません。そのため、ご利用時はご自身で適宜書き換えてください。書き換え、再配布は限りなく自由です。ですが、どのように書き換えたかを教えていただくと喜びます。

一応書いておきますが、こちらに掲載されている内容でどのような不利益を被っても責任は負い兼ねますので、ご了承ください。一応目を通して大丈夫そうでしたが、もしかしたらニコ生の利用規約とかに違反しているかもしれないです。


OS : Lubuntu16.04, MacOS Sierra
端末 : Compute Stick(Ubuntu版→Lubuntuに換装), MacBookAir
Python : 3.x系


1. 下準備

まずは前回と同じようにffmpegの準備を行います。基本的に以前のものと全く同じです。というわけで、以下のコマンドでちゃっちゃっとやっていきます。

今回はChromeを操作することで、放送を行います。そのため、Chromeをインストールしておいてください。現在Headless機能が使えるディベロッパ版があるらしですが、今回は通常のChromeを使っていきます。こちらの公式ページから適宜ダウンロードとインストールをしておいてください。

次に、Python3(& pip)が動く環境(インストールできればなんでもいいですが)で、Seleniumをインストールしてください。インストールは以下のコマンドで行えます。 インストールが完了したら、こちらの配布ページからChrome用のドライバをダウンロードし、実行するコードと同じディレクトリ内に移動しておいてください。このドライバを入れるという作業はChromeを使う場合に限るようで、Firefoxを使う場合は必要ないらしいです(未検証)。

あとは、ニコニコ生放送が可能なプレミアアカウントとコミュニティを取得しておいてください。

2. 今回書いたコード

では本記事のメインである、コードを掲載します。本来ならGitHubなんかに載せるべきなのでしょうが、あまり好じゃないので個人的には使いません。というわけで、こちらにベタ書きしておきます。

コピペしたら、コード上部にあるconfig的な変数群にご自身の環境を入力してください。我ながらクソみたいな仕様ですが、気にしません。次の自動ニコ生記事である「Ubuntuのデスクトップをニコニコ生放送で全自動配信してみるよ(仮題)」ではちゃんと書き換えておきます。

おわりに

さて今回は、久しぶりにがっつりコードを載せる記事になりました。振り返ると、掲載するにはとてつもなく恥ずかしいコードでしたね。仕様はクソだし、例外処理を満足にできていない……。しかし、今回は、ニコ生自動化のテスト的な側面もあるので、目を背けます。

そもそも、なぜSleniumで画面を操作してニコ生するのかという話になるかと思います。……それはもちろん、自動的に画面が移り変わっていく様・フォームに文字が入力されていく様にロマンがあるからです。

以上。