Textwellでニコニコ動画を検索するアクション NicoSearch
昨日はSoundCloudだったけど、ニーズとしてはこっちかな。
天下のニコニコ動画をTextwellで引っ張ってみる。別に直接検索してもいいんですが、ブログにリンクを貼るのが面倒だから、一括して面倒見ちゃいましょう。
下記アクションをインポートしてください。「sort=n」なのでコメントが新しい順に並びます。32件が上限。「sort=f」にすると投稿日順、「sort=v」は再生数、「sort=l」は再生時間、「sort=m」はマイリスト数の順になります。お好きなようにどうぞ。
<meta name=viewport content=initial-scale=1,user-scalable=no> <meta name=format-detection content=telephone=no> <title>searching...</title> <style> .box{ color:gray; background:#fafafa; font-size:medium; padding:5px; } img.icon{ float:left; width:75; margin:5px; border-radius:5px; } span{ color:black; } hr{border:0;} </style> <script> // 起動用URLスキーム Scheme="nicovideo://"; // Scheme="nicobox://"; // 埋め込みプレート ${id}:URLアドレス ${title}:タイトル Plate="<iframe src=http://ext.nicovideo.jp/thumb/${id}><a href=http://www.nicovideo.jp/watch/${id}>${title}</a></iframe>"; // プログラム本体 s=T.stdin.currentText; if(s=="") location="http://sp.nicovideo.jp"; url="http://ext.nicovideo.jp/api/search/search/"+s+"?mode=watch&order=d&page=1&sort=n"; T.request({ url:url, callback:function(x){Disp(x.responseText);} }); function Disp(x){ T.title(T.current); data=JSON.parse(x).list; s="<hr>\n"; k=0; for(i=0;i<data.length;i++){ d=data[i]; icon=decodeURI(d.thumbnail_url); s+="<div class=box onClick=Open(\""+i+"\")><img class=icon src="+icon+"><span onClick=Paste(\""+i+"\")>"+decodeURI(d.title)+"</span><br>date: "+d.first_retrieve+"<br>view: "+d.view_counter+"<br clear=all></div><hr>\n"; } document.body.innerHTML=s; } function Open(i){ url=Scheme+data[i].id; T.urlScheme(url); } function Paste(i){ d=data[i]; id=d.id; title=decodeURI(d.title); text=Plate.replace(/\${id}/g,id).replace(/\${title}/g,title); T("replaceCurrent",{text:text}); } </script>
Import Textwell ActionNicoSearch
最初にニコニコ動画にログインします。空行にカーソルがある状態でアクションを起動。するとニコニコ動画のモバイルサイトが開くので、左上の「ログイン」で認証します。
カーソル行にキーワードを書き、NicoSearchを起動すると検索結果がリストになって出ます。もし全然ヒットしない場合は、Textwellにログインが反映していないケースが考えられます。AppスイッチャーでTextwellを終了し再度Textwellを起動してください。
サムネをタップするとニコニコ動画のアプリが起動します。もしNicoBoxを起動したい場合は、ソース中のScheme変数を「nicobox://」に変更することで対応できます。
検索結果のタイトルをタップすると、リンクプレートが本文に貼り付きます。上記のような表示になる。これでニコニコ動画の紹介をモブログで出来るようになります。
最近のアニメは放映後一週間、ニコニコ動画で無料公開されるので、気になるのはそれで追いかけてしまいますね。おかげで画面にコメントが流れないと、何か欠乏を味わうような空虚さを感じるようになった。まともな映像が見れない身体になっちゃいました。
技術的なことですが、今回の動画取得はT.request()でGETしています。でも、ニコニコ動画はPOST方式に移行中で、TextwellのT.request()だとPOSTにデータを持たせることができません。それで、このアクションも数ヶ月後には動かなくなる可能性があります。その場合は対応版までしばらくお待ちください。