画像掲示板でエラー

画像掲示板の泉で、フォロワー募集板のようなものを作ってみようと思い付き、夜中にプログラム修正をかけつつテスト投稿を何度かやっておりましたが、途中からテスト投稿時にエラーが表示され始めるようになってしまい、慌てて修正前バージョンに戻すといったことをやったりしていました。

とはいえ、戻してもまだエラーが継続する状態となってしまったので、エラー内容をよく見てみると、ニコニコ動画のURLアップロードあたりでエラーがでていることが分かりました。

ログファイルを何かの拍子に破壊したかな?とは思い、ログを眺めてみたりしてみましたが、全部の板で同様のエラーがでてしまっているようで、もう一度コードをしっかり読み直してみることにしました。

ニコ動APIのエラー

ニコニコ動画の貼り付け対応をした10年前頃のコードを読み直してみると、ニコニコのAPIにクエリを投げてサムネイルURLを取ってくるあたりでエラーがでていることが分かりました。

$Q = "https://ext.nicovideo.jp/api/getthumbinfo/".$line_array;
$P = xml_parser_create();
xml_parse_into_struct($P,file_get_contents($Q),$vals,$index);
xml_parser_free($P);

8年前のAPI仕様で書いたコードだったので、APIが遂に終わったんだろうとは思いまして、再度API仕様を調べてみるかと久々にニコニコ動画に行ってみたところ、こんな感じになってました。

ニコニコ動画の緊急メンテナンスイメージ
ニコニコ緊急メンテナンス

ニコニコ緊急メンテナンス

どうやらニコニコ動画、静画、生放送といったサービスが全部止まっているようで、それらと同じようにAPIも死んでしまっているようでした。

ニコ動緊急メンテ対応

先程のコードをみてわかると思いますが、エラー処理も全くなしでfile_get_contents()でクエリを投げつけてしまっていたので、レスポンスデータが無い変数をパースしようとしてWarnningがでてしまってということのようです。

ということで、ストリームコンテキストで ‘ignore_errors’ => true を指定してステータスをとりあえず取りに行って、200だったらパースに進むといった感じに書き直してみました。

サムネイル画像を取ってくるだけなので、取れなかったらデフォルト画像でもはめこんでおけばOKという適当な感じです。

$Q = "https://ext.nicovideo.jp/api/getthumbinfo/".$line_array;
//ストリームコンテキスト作成
$context = stream_context_create(array(
 //エラー無視
 'http' => array('ignore_errors' => true)
));
$response = file_get_contents($Q, false, $context);
$pos = strpos($http_response_header[0], '200');
if($pos != false){
 $P = xml_parser_create();
 //サムネイル画像を取る
}else{
 //デフォルトのサムネイル画像はめこむ
}

ニコニコ動画でぐぐると「ニコニコ動画 メンテナンス」といったサジェストが出るくらい最近はメンテナンスが増えているのかもしれないですが、これで一安心という感じです。

おわりに:ニコニコ動画API

APIのリクエストURLは10年前からある動画情報取得用のgetthumbinfoを使っていますが、ニコニコ動画APIのページを見ると、何年か前に動画検索APIも用意されているようで、今はスナップショット検索API v2というものにバージョンアップまでされているようでした。

スナップショットAPIを見ると色々とデータが取れそうです。

titleタイトル
descriptionコンテンツの説明文
viewCounter再生数
mylistCounterマイリスト数またはお気に入り数
lengthSeconds再生時間(秒)
thumbnailUrlサムネイルのURL
startTimeコンテンツの投稿時間
lastResBody最新のコメント
commentCounterコメント数
lastCommentTime最終コメント時間
categoryTagsカテゴリタグ
tagsタグ(空白区切り)
tagsExactタグ完全一致(空白区切り)
genreジャンル
genre.keywordジャンル完全一致

同じように、YouTubeにもAPIは用意があるので、この2つを合わせて動画横断検索でも作ったら面白いかもしれないですね。

ABOUT dtn.jp

この運営ブログをみてdtn.jpの運営サイトに興味をお持ちになった方は下記のリンク集からサイトをご参照ください。PHP・SQL・JS・HTML・CSSや様々なAPIでゼロから立ち上げたサイトを複数運営しています。

dtn.jp関連サイト

  • ディレクトリ型検索エンジンdtn大手サイトは全てサービスを終了し、中小でも運営を継続するところがほとんどなくなってしまったディレクトリ型検索エンジンを2002年から細々運営しており、未だに細かい機能改修も行っております。申請されたサイトは実際に訪問して細かく確認をしているので登録までかなりお時間いただきます。
  • 猫ネコサーチエンジン猫・ペットサイト専用のディレクトリ型検索エンジンです。登録サイトはサイトのスクリーンショット付きでカテゴリに掲載しています。
  • 画像掲示板の泉画像やYouTubeやニコニコ動画が貼り付け可能な匿名画像掲示板です。27ジャンルに分かれた掲示板に、それぞれ100スレッドまで立てることが可能です。
  • ツイータンTwitter APIを使って10分おきに収集したTwitter(ツイッター)のトレンドワードや人気ハッシュタグデータを月別に集計してランキング形式で公開しています。
  • Keyword Tool++Yahoo APIや楽天サイトのデータを日次で収集したデータを元に、EC系キーワードをラインキング形式でご紹介しています。各ワードは検索ボリュームや関連語、24か月の検索ボリュームトレンドを確認も可能です。
  • 消費者金融の泉カードローン商品を取り扱う金融業者を一覧で比較可能としたサイトです。カテゴリ別、人気度別、限度額別、金利別に比較可能なサイトにしています。
  • TrendinGファッションモールに出店するブランドをアイテムヒット率でランキングとしたサイトです。まだβ版です。

各サイトの開発方法などについて

各サイトの開発方法や運用トラブルについては、当ブログで不定期にご紹介しています。Twitterで新着記事のお知らせもしています。宜しければフォローどうぞ。