ニコニコチャンネルの自動キャッシュサーバー
Docker対応に伴いレポジトリをkurema/nicochcgi_dockerに移動しました。
このレポジトリは基本的に開発終了となります。ただしいくつかの違い以外はほぼ同じなので好みによりこちらも利用できると思います。
レポジトリはフリーズしますが、気が向けば今後も時折バックポートするかもしれません。
インストール作業がかなり簡便になりました。 Dockerfileを見ればセットアップ方法も概ね分かります。
ニコニコチャンネルを監視して、ダウンロードするツールです。
ダウンロードスクリプトに管理用のcgi、API、プレイヤー、テレビ向けUI等含めます。
最新版とは限りません。静的サイト版。
dockerを利用した方法がおすすめです!
インストール方法 (サーバーで直接実行する場合)
- nicochフォルダをApacheの公開フォルダ(/var/www/html/nicoch/とか)にコピーします。
git clone https://github.com/nicocache/nicochcgi.git
とか。 - ユーザーを書き換えます。
sudo chown www-data:www-data *
とか。chlist.*
の3ファイルはcgiが書き換えるので必須です。 .htaccess
を書き換えます。間違えて外部からアクセスされると犯罪になりかねません。.htaccess
が有効になるように設定するのも忘れないでください。外部公開するならBasic認証でも掛けておいてください。- cgiに実行権限を付与します。
sudo chmod 755 *.cgi *.pl
。 - cgiが実行できるようにいろんな設定をします。
- cpanを使って依存ライブラリをインストールします。
nicoch.conf
を書き換えてダウンロードフォルダを設定します。フォルダはhttpの公開フォルダ外で構いません。ただしcgiが読める場所で。
- 管理者パスワードが必要な場合は、nicochフォルダ内で
perl get_password.pl
でパスワード用設定を作成して貼り付けてください。
/var/www-data/.netrc
にニコニコ動画のアカウントを登録します。パスワードを分けた別アカウントを作っておいた方が楽だと思います。.netrcはchmod 600 .netrc
とchown www-data:www-data .netrc
でアクセス権を変更してください。
machine nicovideo
login [email protected]
password your_pass
- この設定は
nicovideo-dl -n
と共通です。
- 自動ダウンロードを設定します。
sudo -u www-data crontab -e
で10 3 * * * perl /var/www/html/nicoch/nico-anime.pl 2>&1 | tee -a ~/nicoch.log
とか。エコノミーユーザーの場合は低画質の時間は避けましょう。そうでなくてもサーバー負荷を分散するようにするべきです。 - サムネイル作成用にダウンロードフォルダに
script/mkthumb.sh
を配置し同様にcrontabを設定します。 - ブラウザでアクセスしてみて適当にチャンネルを登録します。
アップデート方法
- サーバーの/nicochフォルダを適当な場所にバックアップします。
- GitHub上の/nicoch内の以下以外のファイルをコピーします。
- chlist.txt
- chlist.bup
- chlist.tmp
- nicoch.conf
- .htaccess
- 以前のバージョンでは.htaccessでindex.cgiを最優先にしていました。必要ならindex.htmlに書き換えてください。
- cgiに実行権限を付与。
簡単なニコニコ動画のhtmlプレイヤーが含まれています(play.html)。
同様のニコニコ動画キャッシュサーバーを作る際には手軽なのでお勧めです。
注意点
- play.htmlはCSSやjavascript含めてスタンドアローンです。
- コメント取得はサーバー側でプロキシを建てています。動画のやコメントプロキシのUrl指定部分は書き換えてください。
- コメント表示の挙動がいくらか異なります。簡易版と考えてください。またちょっと重いです。
- フォントサイズは基本的に実際より小さめにしています。現在としては公式のサイズは大きめだと個人的に思います。
Windowsで利用できるUWP版のクライアントがあります。
- 動画一覧は単純にファイル構造を見て判断しています。 録画記録を保持しているわけではないので、適当な動画やチャンネルを削除しても問題ありません。 ただし、録画予約に残ったままなら再ダウンロードされます。
- ダウンロードフォルダは容量の大きいパーティションを指定する事をお勧めします。 minidlna等を設定するのもよいでしょう。
res/diaryに開発日記があります。 細かな仕様や参考資料などはそちらを参照してください。 他にコミットへのコメントにメモしてある事もあります。
複数行コメントに対応。ただ本家よりこっちの表示の方が気に入っているので再現性は追及しません。基本このまま。仮対応しました。アカウント対応。必要性は微妙。対応しません。
Gistで公開されていたコードからフォークしているので厳密にはダメかもしれないですが、MITライセンスで公開しています。
Takumi Akiyama様のnico-anime.plがベースになっています。
感謝します。
まぁ大幅に書き加えて別物ですが、スクレイピングとかよく知らなかったので助かりました。