概要

(前回更新:10年1月11日)
(最終更新:10年1月13日)
色分け:自動リンク 外部リンク ニコ動へリンク 独自製作コンテンツ

管理人について

連絡先:matanky@msn,com

mixi:id:167111

Twitter:@Xephy_dc

はてな:PHPに惚れました

マイリスト:[PHP]ニコニコ動画外部サービスを作ってみた1~5 mylist/9605477

なんだこれは?

「会社や学校でニコ動が見れなくてもここなら見れるかも。」
最近会社や学校でニコニコ動画を始め、その他動画サイトやブログなど閲覧制限されているところが多いようです。
このサイトや外部プレイヤーの閲覧制限がされていなければ、
ランキング表示や動画の視聴などが出来ます。(詳細は後述。)
他に、「本家のアカウントが無い、ログインするのが面倒。」といった方にもどうぞ。

ニコニコ動画アカウントが無くても以下の事が出来ます。
  • ランキング等の表示
  • 外部プレーヤでの時報の一切無い動画視聴、(広告有)
  • 動画ファイルのDL(※一般垢使用)(停止中)
  • コメントのXMLファイルのDL(停止中)
  • mp3ファイルDLのサポート、
  • マイリストの更新チェック
  • 等々。。。

データベースに毎日ランキングから動画情報を記録しています。これを元にオリジナルランキングも制作。
また、データベースに記録されている動画の検索も可能です。

ニコニコエコーの利用の大前提

ニコニコ動画の吐いているRSSが仕様変更した場合、対応まで多少時間がかかることがあります。
また、ニコニコ動画のメンテナンス中は一部コンテンツは利用ができません。
ニコニコエコーの利用はもちろん登録の必要もないですし、無料です。

ニコニコエコーのサイトの状況

各ページのデザインは以下のブラウザで確認しています。

確認ブラウザ
  • Sleipnir2.9
  • IE7.0、IE8.0
  • FireFox3.5~
  • Safari4.0.3
  • Google Chrome3.0~

追々の更新によって対応状況が変わる可能性があります。

表示部分
動画再生ページ以外のCSS,HTML書き換え(09/12/01確認)
動画再生ページ
動画の視聴はおそらく全てのブラウザでできます。
動画ファイルDL
一時停止中
コメントXMLファイルDL
一時停止中

他に何かありましたら上記の連絡先に報告してくれたら助かります。

自動リンク(更新#2)

smXXX、nmXXXなどの動画ID、mylist/XXXXX、user/XXXXなど、ニコ動と同じく動画などに自動リンクを施してます。
ニコ動と違う部分はhttp://についても自動リンクを施した点。
zip配布先やうp主のブログなどに一発リンク。
mylist/~~と書かれたリンクはマイリストビュアーへリンク。
nmXXXXXやsmXXXXXXと書かれたリンクは動画再生ページへリンク。

外部リンク

mp3抽出として、「にこさうんど」様に各箇所動画毎のリンクを許可していただけました。
はてなブックマークへのリンクを施しました。

二コ動へリンク

直接ニコ動関連のページにリンク施してます。
動画も大事典もここから一発リンク。

独自製作コンテンツ

遊びで独自制作したオリジナルコンテンツもあります。

公式ランキング(更新#6)

取得出来る項目
  • サムネ画像
  • 投稿日
  • 各再生数
  • 各コメ数
  • 各マイリスト数
  • 順位
  • ランクpt
  • 再生時間
  • 動画再生
  • 現在のレベル

補足

ニコニコ同様ランキングを表示してます。
ただしここでは選択時に本日、週間、月間の再生、コメ、マイリスも表示されます。

11/1
本家の(9)へのバージョンアップに伴い、新カテゴリに対応しました。
8/7
毎時ランキングに対応。

旧形式ランキング(更新#2)

取得出来る項目
  • サムネ画像
  • 投稿日
  • 各再生数
  • 各コメ数
  • 各マイリスト数
  • 順位
  • ランクpt
  • 再生時間
  • 動画再生
  • 現在のレベル

補足

ニコニコチャートさんが公開されているフィードの利用許可貰ったので、旧形式マイリストランキングを整形してみました。

マイリストビュアー(更新#10)

取得出来る項目
  • ニックネーム
  • リスト最終更新日
  • 投稿日
  • 再生時間
  • 動画再生
  • 現在のレベル
  • マイリストチェッカーへ追加

補足

マイリストメモが書かれてない物に関しては表示されません。
これも外部ブログなどからもGET要求可能です。
URL指定方法:./mylist/マイリストID


マイリストビュアーからマイリストチェッカーへの追加が出来ます。(詳細は以下で説明)

2008/11/4
マイリストの表示順を本家追加の新しい順に変更。
これでチェックもし易くなったと思います。
2008/11/5
ソートを実装してみました。
項目の多いマイリストは処理と表示に少し時間がかかるかも知れません。
  • 本家マイリスト追加日 昇・降順
  • タイトル 昇・降順
  • 再生時間 昇・降順
  • 動画レベル 昇・降順
  • 動画投稿日 昇・降順

以上5種類です。

12/27
今更ですが、誤解を招く恐れがあるのでコンテンツの名称変更しました。
mylistAPI→mylist_Viewer
今回の変更は名称のみの変更なのでURLやサービス自体の変更はありません。
11/1
本家の(9)へのバージョンアップによるレイアウト崩れ、動作速度の向上を施しました。

動画再生ページ(更新#15)

取得出来る項目
  • 投稿日
  • 投稿後経過日数
  • 投稿者名
  • 動画再生
  • タグ(海外タグ)
  • サムネ画像
  • 動画情報取得API
  • 再生時間
  • 再生数
  • コメ数
  • マイリスト数
  • 1日平均再生数
  • コメント率
  • マイリスト率
  • 最新のコメ5件
  • 現在のレベル
  • 経験値
  • 補正値
  • 次のレベルまで
  • 関連動画
  • 動画抽出

補足

公開されている外部プレイヤー置いてみた。

新:./watch/動画ID


(注)長時間の動画は[右クリック→対象をファイルに保存]で保存しないと
PCの設定でファイルの種類(mp4など)によってweb上でQuicktimeで読み込もうとして処理が重くなります。
基本全て[右クリック→対象をファイルに保存]で問題ないです。

1/13
動画タグをクリックする事でそのまま当サイトでタグ検索する事が出来るようにしました。
2010/1/4
動画タグの右横に「上司・先生が来た!」を追加しました。
とっさに切り替えられるように、マウスカーソルを合わせるだけで表示、非表示が切り替わります。
ただし、ブラウザによって非表示、再表示した際の挙動が変わります。
IE・・・非表示にすると動画はそのまま再生されているが無音、再表示後、シークバーをずらすと音声が回復します。
FireFox,Safari,Google chrome・・・再生がストップ、[>再生ボタンを押して最初から再生。
12/3
本家が(9)になって1ヵ月経ってから気づいたんですが、当サイトで全てのブラウザで動画再生できる事を確認。
以前はブラウザ依存によって動画が見れないブラウザがあったんですが、外部動画プレイヤーを直置きする事で解消されました。

動画レベル(更新#3)

補足

勝手に動画にレベルをつけてみた。

計算方法
経験値集計方法は週間、月間ニコニコランキングなどと同じ。
再生+コメ×補正値+マイリス×15
補正値 (再生数+上限コメント数+マイリスト数×15)÷(再生数+コメント数+マイリスト数×15)
上限コメント数 再生数の100%を上限としたコメントポイント

以上の計算で出た経験値によって動画のレベルをはじき出します。
最大レベルはLv.100100を超えるとLv.Maxと表示されます。

今のところa_mylist以外のサービスほぼ全てに実装。


(注)レベルは管理人が勝手に作ったもので動画に優劣つけるものではありません。
あくまで遊び感覚で捕らえてください。

新着動画(更新#3)

補足

新着30件の動画一覧も作ってみました。
もちろんページ更新頻度はニコ動本家と同じスピードです。

レベル表示は新着なので大体が1~3くらいなので必要無いかなと。
根本的にRSSに動画ステータスの情報ないし・・・

他のAPI併用すれば出来なくもないんですが。やっぱり必要無いよね。と。

10/3
新着動画を10ページまで取得できるようにしました。
新着を最大300件まで確認することが出来ます。

ブックマークレット

補足

あちこちで見かけるブックマークレットをここでも置いてみた。
右クリック→お気に入りに追加

[利用方法]
  1. ↑のリンクを右クリック→[お気に入りに追加]
  2. ニコニコ動画のマイリストページ、もしくは動画再生ページで保存したお気に入りをクリック。
  3. 開いていた動画IDのnicoPlayerページ、もしくは開いていたマイリストIDのマイリストビュアーに来れる。

マイリストチェッカー(更新#10)

補足

オリジナルの新機能正式リリースです。
えーとコイツは本家における[動画をマイリストする]とは違って、[マイリストをマイリストする]ものです。
お気に入りのうp主の動画全部マイリスト入れるのめんどい!!
一般会員だからマイリスト入れたい数足りない!
こんな方々に需要あると思います。

利用条件はCookieを有効にする。それだけです。
cookieの有効期限は180日です。
180日間ページに訪れない、あるいはcookieを削除すると空の状態に戻るので注意してください。


マイリスト単位に記録するので動画単位で言うと1000件でも2000件でもCookieの記録限度(デフォルト4KB)まで記録できます。

4KB。具体的な数で言うと350~400マイリストくらいは記録できます

ただし!!!
記録できるのは公開されているマイリストのみ。
未公開マイリストは記録はできても表示が出来ないのです。

記録はマイリストビュアーページに[mylist/XXXXXXをマイリストチェッカーに追加]ってのがあるはず。
こいつをクリックするだけで一発。

11/1
本家の(9)へのバージョンアップに伴うレイアウト崩れ、及び、動作速度の向上を施しました。

動画ピックアップ(更新#2)

試作運用も問題ないので新機能正式リリース。
公式ランキング,旧形式ランキングに旬の動画をピックアップする関数組み込みました。

本家のホットリストをランキング内でやっちゃった感じです。
釣り動画にも対応してしまいますがそこは仕方ないね。

※ピックアップ条件は独自なので、本家の物とは別物です。
むしろ本家の基準分からんので。。

以下ピックアップ条件
合計再生数÷投稿経過日数
20000以上ならオススメ画像。
10000~19999かつ、nicoLevelが50以上(経験値62.5万以上)の物にはピックアップ画像が表示されます。

算出方法は今のところこれで決定。
埋もれやすい過去動画も表に出やすくなりました。
ただ、該当条件は多少変動するかもしれません。

オリジナルランキング(更新#8)

DB記録開始日2008/09/20
キャッシュ記録開始日2009/01/01

以下の6つのオリジナルランキング公開しました。
  • 今旬の動画
  • 長期人気動画
  • マイリスト率BEST100
  • コメント率BEST100
  • 経験値BEST100
  • 100件ランダム取得(新)

nicoDBのメニュー欄に現在記録されている総動画数が表示されています。
現在は再生ページの「DBの動画情報を更新」のボタンを押すと更新されます。

2009/1/1
ランキングデータをXMLファイルとしてキャッシュ化する事で表示速度が速くなりました。
HTMLでも良かったけどこの場合XMLなら更にファイル容量少なく済みますからね。(130k→20k)

XMLは0時~23時59分の1日単位で記録。ランダム取得以外全記録取ります。
容量的にかなり嵩張りそうですが・・・でも、鯖管に怒られるまでやります。

それと、O_rankを毎時更新にしました。23時の更新がその日のキャッシュファイルの完成系です。
以前から公開中のRSSは引き続きご利用いただけます。
1/14
DB記録項目追加。 初回記録日、最終データ更新日の二つを追加しました。
既存のデータの初回記録日は全て動画投稿日に設定しています。
1/7
告知通り過去のランキングが見れるnicoDB_Past_O_Rankリリースしました。
4/7
一時的な対策を取ってから調子もいいのでランダム100件取得再開しました。
これでまだサイトがこけるようならばこちらも毎時更新にします。
7/24
動画のコメント補正値計算に誤りがあった状態で記録していました。
現在は計算部分は修正済。

動画情報取得API(更新#3)

動画情報のDB記録を利用してAPIを製作しました。

取得先:./api/動画ID
各動画のPlayerページの上部にリンク貼ってます。

レスポンスはXML1.0形式。
文字コードはUTF-8N。

12/18
取得項目にlapsed_days(投稿後経過日数)を追加しました。
以下構造
delta_api_response
┗status=ok    //取得可
┗status=fail  //取得不可
video_uni
┗動画の識別子   //sm,nmなど
video_id
┗動画ID      //動画識別子を除いた1~7桁の数字
title
┗動画のタイトル
description
┗投稿者コメント
first_retrieve
┗動画がupされた日時  //グリニッジ形式
pubDate
┗初回記録日時
last_update
┗最終データ更新日時
lapsed_days
┗投稿後経過日数
length
┗動画の再生時間(秒)
thumbnail_url
┗サムネイルのURL
view_cnt
┗再生数
com_cnt
┗コメント数
mylist_cnt
┗マイリスト数
watch_url
┗再生ページ(ニコエコサイト内)
view_cnt_rate
┗再生数/経過日
com_rate
┗コメント率
mylist_rate
┗マイリスト率
level
┗現在のレベル
exp
┗現在の経験値
com_corre
┗コメント補正値
next_level
┗次のレベルまでの必要経験値
hot_video
┗今旬の動画に載ってるか
1:載ってる 0:載ってない
past_hot_video
┗過去旬の動画に載ってるか
1:載ってる 0:載ってない

データベース検索(更新#3)

nicoDBに記録されている動画を検索できるようにしました。
表示件数は40件固定。ソートも本家以上に豊富です。
ページ分割は5ページ先まで飛ぶことが出来ます。
全角、半角スペースで区切る事でand検索、or検索も可能です。

こちらは自サイト提供なので予告なしにサービス停止する事はありません。

検索対象は動画タイトルと投稿者コメントです。
タグは記録していないので検索対象ではありません。

3/6
検索処理時間を表示しました。特に意味はないですけど・・・。
表示までの時間に影響があるようなら削除します。あくまで飾りって事で。

正常時の処理時間の目安はand検索で1.5秒~3秒くらい、or検索で3秒~最大6秒です。

過去のランキング

記録開始日2009/01/01


動画でも告知したとおり、指定した日時のオリジナルランキングが見れるようにしました。

存在しない日時、まだ来ていない日時を指定するとエラーを返します。

1日毎にランダム取得以外の各項目の23時の更新を最終更新としてRSSを保存しています。
何かに使う方はどうぞご利用ください。利用時一言くれたらありがたいです。

Ajaxについて

DBの接続数制限回避にランキング表示、マイリスト表示をAjax(非同期通信)にしました。

根本的な解決にはなっていませんが同ランキング内でのカテゴリ遷移(ジャンル,集計対象,ページ数etc)
の時の表示の際は接続数制限に引っ掛かることは限りなく0になるはずです。

Ajax対応コンテンツ
  • 公式ランキング
  • 旧形式ランキング
  • マイリストビュアー
  • 視聴履歴
  • オリジナルランキング
  • 過去のランキング
  • 新着動画
  • タグ検索

視聴履歴(更新#2)

当サイトで見られている動画をリストアップしてみました。

最大50ページ確認できます。

Twitterに視聴動画を記録しているbotのRSSを整形しただけのものですが(汗
これで皆がどんな動画を見ているかってのが分かりますね。

10/22
TwitterのAPIの仕様変更で10月20日12時44分02秒以降の履歴が見れなくなっていました。
区切り文字として全角文字を使用してるんですがPOST時にAPI側で勝手に半角に変換されるようになっていたのが原因でした。

タグ検索(新)(更新#2)

新年に入ってから初の新サービスです。

ニコニコ動画本家と同等量の動画を対象にタグ検索ができます。
ソートの種類は本家準拠なのでレベルのソートや経験値によるソートはありません。

検索語に半角,全角文字の区別はありません。
空白文字で区切ることでand検索もできます。

こちらもAjaxによる非同期通信対応となってます。

1/13
フォームからの検索語の指定の他、./tag/検索ワードで直に検索できるようにしました。
ただし、全角文字はurlエンコードされたもののみ受け付けます。
1/11
試作品としてβリリース