Latest entries

禁Twitter約2ヶ月目、そして「NITRAIDSB」 からDVD「RAIDBACK」発売

nitraid-raidback
nitraid-raidback posted by (C)kishir

禁煙は出来ないので、禁Twitterをしている最中。

何故やろうかと思ったかというと、色々な人のつぶやきが何かと気になる自分が居て、

そのせいで集中出来ない自分も居るわけで。仕事が忙しいときはうざくなるんだよなぁー。

まぁー単純に自分に負けているだけです :-P

さてと「NITRAID」のスケボーメイン「SB」からDVD「RAIDBACK」が出てきたのですげー気になっていたんだが、

友達がDVDを購入したので借りてゴニョゴニョした。

いやぁー良かった、良かった。

何が良かったかというと・・・

・今まで色々なスケボーの映像(DVDやVHS)を見てきたが、これが一番見やすい

・トラックを「MACKA-CHIN」がプロデュースしているので、自分好みの音

・出演しているライダーが多いので、うれしい。

エンドロールでは色々と失敗している映像が含まれているのだが、みんなオラオラしてるなぁー。

あんな風に無茶しないとレールなんて挑めないよねw

もうちょっと勇気を出して、色々と攻めてみたい気持ちになる映像だった。

Posted at: 
2009/06/13 18:55:38
0 Comments
0 TrackBacks
Tags: 
sk8
Trackback: 
http://kishi-r.com/2009/06/13/nitraid_raidback/trackback/

THA BLUE HERBの新曲「STRAIGHT YEARS」と「LIVE AT CORE TOKYO,99.5.2(DVD)」が発売

遂に出ました。(まだCDだけだけど・・・7inchは?

3rd Albumの「LIFE STORY」以来2年ぶり。

価格はなんとワンコイン「500円」

公式ホームページ「TBHR [THA BLUE HERB RECORDINGS]」でPVが閲覧可能になっていた。

発売日は09/05/20だけど、

discunionお茶の水CLUB MUSIC SHOP

などでは入荷しているみたい。

DVDの「LIVE AT CORE TOKYO,99.5.2」の価格は、 「2,800円」

こちらは既に丁度10年後になる「09/05/02」の恵比寿リキッドルームにて、ゲット済み。

この日は最高の日だったなぁ。

STRAIGHT YEARSSTRAIGHT YEARS
THA BLUE HERB RECORDINGS
THA BLUE HERB RECORDINGS(2009-05-20)
新品価格:¥ 500
ASIN:B00270NIIC

Posted at: 
2009/05/20 08:08:14
0 Comments
0 TrackBacks
Tags: 
Music
Trackback: 
http://kishi-r.com/2009/05/20/tha_blue_herb_straight_years/trackback/

bit.lyのAPIを試してURLを短縮してみた

参考にしたサイト:

Python: URL短縮サービスbit.lyのAPIを使ってみた

上記サイトにある「bitly_test.py」を見れば大体どんな事が出来るのかが解る。

一応APIのドキュメントを自分のメモ用に下記リンク先へまとめておいた。

短縮URLサービス bit.lyのAPI

上記にまとめた内容を元に色々試してみる。

1.「URLを短縮」

まずは自分のサイトで「URLを短縮」を試してみる。

import sys, os, re, urllib, urllib2
import simplejson
url       = "http://kishi-r.com/"
info_url  = "http://api.bit.ly/%s?version=2.0.1&%s=%s&login={自分のAPI用ログイン名}&apiKey={自分のAPIKey}"
url_data  = urllib2.urlopen(info_url % ("shorten", "longUrl", url)).read()
url_info  = simplejson.loads(url_data)
print url_info

これで短縮された内容がjson形式で返ってくる。その結果が下記になる。

{u'errorCode': 0, u'errorMessage': u'', u'results': {u'http://kishi-r.com/': {u'shortKeywordUrl': u'', u'hash': u'SOC0w', u'userHash': u'Oyrgz', u'shortUrl': u'http://bit.ly/Oyrgz'}}, u'statusCode': u'OK'}

ここで短縮されたURLはそのまま使用するので、適当な変数へ入れておく事にする。

bitly_url = url_info["results"]["http://kishi-r.com/"]["shortUrl"]
print bitly_url

2.「短縮したURLから元のURLを取得」

先ほど短縮したURLから元のURLを取得する。

info_url = "http://api.bit.ly/%s?version=2.0.1&%s=%s&login=kishir&apiKey=R_b23e6cb3351dc3d73c1bb5091c622e4c"
url_data = urllib2.urlopen(info_url % ("expand", "shortUrl", bitly_url)).read()
url_info = simplejson.loads(url_data)
print url_info

結果が下記

{u'errorCode': 0, u'errorMessage': u'', u'results': {u'Oyrgz': {u'longUrl': u'http://kishi-r.com/'}}, u'statusCode': u'OK'}

3.「URL先の情報を取得」

URL先のサイト情報を取得する。
info_url = "http://api.bit.ly/%s?version=2.0.1&%s=%s&login=kishir&apiKey=R_b23e6cb3351dc3d73c1bb5091c622e4c"
url_data = urllib2.urlopen(info_url % ("info", "shortUrl", bitly_url)).read()
url_info = simplejson.loads(url_data)
print url_info

結果が下記

{u'errorCode': 0, u'errorMessage': u'', u'results': {u'Oyrgz': {u'hash': u'SOC0w', u'keywords': [], u'shortenedByUser': u'kishir', u'exif': {}, u'userHash': u'Oyrgz', u'contentLength': u'', u'id3': {}, u'calais': {}, u'longUrl': u'http://kishi-r.com/', u'version': 1.0, u'htmlMetaDescription': u'\u30ec\u30b3\u30fc\u30c9\u3068\u30b9\u30b1\u30dc\u30fc\u3068\u672c\u3068\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc\u305f\u3061\u3092\u66f8\u3044\u3066\u3044\u308b\u30d6\u30ed\u30b0\u3002\u30ec\u30b3\u30fc\u30c9\u306f\u8272\u3005\u306a\u30b8\u30e3\u30f3\u30eb\u3092\u805e\u3044\u3066\u3044\u308b\u3002\u30d7\u30ed\u30b0\u30e9\u30e0\u306fPython\u3084Django\u30fbjQuery\u306e\u4e8b\u3092\u66f8\u3044\u3066\u3044\u308b\u4e8b\u304c\u591a\u3044\u3002', u'htmlMetaKeywords': [u'kishi-r', u'kishi', u'python', u'Django', u'jQuery', u'sk8', u'record'], u'calaisId': u'', u'thumbnail': {u'large': u'http://s.bit.ly/bitly/SOC0w/thumbnail_large.png', u'small': u'http://s.bit.ly/bitly/SOC0w/thumbnail_small.png', u'medium': u'http://s.bit.ly/bitly/SOC0w/thumbnail_medium.png'}, u'contentType': u'text/html; charset=utf-8', u'users': [u'kishir'], u'globalHash': u'SOC0w', u'htmlTitle': u'kishi-r.com', u'metacarta': [], u'mirrorUrl': u'', u'keyword': u'', u'calaisResolutions': {}, u'surbl': 0}}, u'statusCode': u'OK'}

MetaDescriptionやキーワードなんやらも含まれているみたいだ。

他にもエラーコード取得などもあるが、今回はここまででいいやぁ。

とりあえず試して出来たので、必要なパラメーターなどを設定して返ってくるクラスでも作っておけば、何かと使えそうだなぁ。

Posted at: 
2009/05/19 12:32:18
0 Comments
0 TrackBacks
Tags: 
API
Python
Trackback: 
http://kishi-r.com/2009/05/19/bit_ly_api/trackback/

mixiカンファレンス2009行ってきました

mixiカンファレンス
mixiカンファレンス posted by (C)kishir

行ってきました。

抽選での参加では無く招待状を頂いての参加でした。

このカンファレンスで期待していたこと

・mixiアプリの公開日

・課金サービスの詳細

・広告サービスの詳細

・mixiPlatformの詳細

・iPhoneユーザーはいつからデベロッパー登録可能か?

などです。

1.「課金システム」

こちらの名称は、「mixiペイメントAPI」となるようです。

ざっくり書くと、はてなのようなポイント制となり、SAP : mixi = 80 :20(開発者が8割、mixiが2割)のような取り分となるみたいです。

2.「広告サービス」

こちらの名称は、「mixiオフィシャル・アドプログラム」となるようです。
こちらは1ページビュー(PV)当たり一律0.01円を開発者に配分するようになり、PCとモバイルで分配額の上がり方が変わるみたいです。

3.「mixi Platform」

「mixiアプリ」「mixi Connect」「mixi OpenID」を提供ということで、以前からの情報と変わりません。
ただしモバイル版の仕様が本日公開予定との事でしたので、早速サイトを確認したところありました。
こちらから確認が出来るようになりました。

4.「今後のスケジュール」

2009年4月23日 mixiカンファレンス2009
2009年8月 mixiアプリ提供開始
2009年9月 モバイル版mixiアプリ提供開始 / オフィシャル・アドプログラム開始

のような流れになるようです。

これに伴い、

mixi ソーシャルアプリケーション アワード」が行われます。こちらはグランプリになると「100万円」いただけるようです。欲しいーなぁw

そのほか個人的に困った事を中の人に聞きました。

5.「iPhoneユーザーはいつからデベロッパー登録可能か?」

iPhoneユーザーは現在開発を行うための申請が行えません。
※携帯電話のアドレスが一意となっているためで、登録フォームの@より後ろを選ぶ項目に、iPhoneのものが無いため
これは1ヶ月は掛かるようなので、ちょっと残念w
家族のアドレスを借りるかして登録する必要がありそうですねぇー。

カンファレンス後は懇親会がありました。

仕事がまだ残っていたため、夜ご飯がてらに食事をいただき帰ってしまいましたが様子を撮っておきました。

mixiカンファレンス懇親会
mixiカンファレンス懇親会 posted by (C)kishir

結構な人数が居ました。

いろいろなメディアの方やテレビ局の方も居ました。

開発者は少なめの感じですかね。

mixiカンファレンス懇親会
mixiカンファレンス懇親会 posted by (C)kishir

結構おいしい食事が出てました。

丸いおすしがおいしかったです。

mixiカンファレンス懇親会
mixiカンファレンス懇親会 posted by (C)kishir

デザートが一番凝っていました。

味も好きでした。

食べ過ぎて帰りおなかが痛くなりましたw

デザート
デザート posted by (C)kishir

カンファレンスの資料とお土産(USBメモリ)を頂きました。

mixiのロゴが入ってますね。

mixカンファレンス資料と土産
mixカンファレンス資料と土産 posted by (C)kishir

mixiアプリに興味がある人は下記からどうぞ。

mixi Developer Centerこちらから登録出来ます。

Posted at: 
2009/04/24 22:37:56
0 Comments
1 TrackBack
Tags: 
Conference
Trackback: 
http://kishi-r.com/2009/04/24/mixi_conference/trackback/

DVD「STRAIGHT DAYS/AUTUMN BRIGHTNESS TOUR'08」が発売

TheBlueHerb(DVDパッケージ)
TheBlueHerb(DVDパッケージ) posted by (C)kishir

遂に発売されたのと、

Amazonギフト券があったので購入。

自分が行った「第17ラウンド!リキッドルーム!!!」は、

2枚組中1枚でしっかりと映像化されていました。

(でもILL BEATNIKは抜けてるんだよなぁー、残念

忙しくちゃんと見られない状況だが、

飛ばし飛ばしで確認した所、6回ほど自分が写っていたw

なんかうれしいなぁー。

あの日、あの時行けなかったあの人にはしっかりと自慢しておいたw

落ち着いたら、しっかりじっくり見ようっと。

とりあえずiPhoneには入れておいたw

中身は「DVD2枚組でブックレット付き」で、下記のような感じ。

TheBlueHerb(DVD中身)
TheBlueHerb(DVD中身) posted by (C)kishir

ツアーでやった内容も記載されていました。 (ってかiPhoneで撮影したから見えねぇー

TheBlueHerb(DVDスケジュール)
TheBlueHerb(DVDスケジュール) posted by (C)kishir

Posted at: 
2009/04/03 00:52:23
0 Comments
0 TrackBacks
Tags: 
Other
Trackback: 
http://kishi-r.com/2009/04/03/dvd_blue_herb/trackback/

インドからのおみやげ「PRETZ」

何気に旨かったw

写真 2
写真 2 posted by (C)kishir

表は日本語で裏は・・・

写真 1
写真 1 posted by (C)kishir

Posted at: 
2009/03/09 23:40:00
0 Comments
0 TrackBacks
Tags: 
Other
Trackback: 
http://kishi-r.com/2009/03/09/indo_pretz/trackback/

アンビエントやらエレクトロニカやらTwitterのTimeLineが気になった

なんか自分の知らない間にTwitterのTimeLineがめっちゃ盛り上がっていて、それに乗れなかった自分が情けない。。。

Erast / NikakoiやHiroshiWatanabeなんかも出てきているし・・・

くそー!って事で、そこらへんのアーティストをつらつら並べてみよう。

・Akira Kosemura / Tiny Musical

TinyMusical
TinyMusical posted by (C)kishir

とか

・schole / Light a Candle

m_39083c7e67e04c49bfc22213717da536
m_39083c7e67e04c49bfc22213717da536 posted by (C)kishir

ここらへんは頂き物。Akira Kosemura最高です。

・凛 / 儚く散りゆく花のように

8204775
8204775 posted by (C)kishir

これはV.Aなので、色々なアーティストかつ凜が自ら作曲してきるのもある。

藤原ヒロシのAveMariaなんかも収録されている。

この人の「刹那に過ぎゆく時の」に収録されている

・..... 凛から贈る、"Any"

から高木正勝というアーティストを知った。

これよりも強めのが聴きたい場合は、

・Kenmochi Hidefumi / Emperor

082931
082931 posted by (C)kishir

やら、

・secede / Bye Bye Gridlock Traffic

310C2KVA71L
310C2KVA71L posted by (C)kishir

これよりももっとダークな感じ(デトロイト系)が、

・O.N.O / Signalog

9673074
9673074 posted by (C)kishir

The Blue HerbのトラックメーカーO.N.Oの最新アルバム。これは初めて聴いたときに昇天ものだった。

でもうちょい民謡音楽的なのが、

・Chimp Beams / Vibrato

2964914
2964914 posted by (C)kishir

とか、

・Deep Dish / Junk Science

312CPF4VMHL
312CPF4VMHL posted by (C)kishir

もっとサイケな感じなのは、

・Shpongle / Shpongle Remixed

21PE0XH7MNL
21PE0XH7MNL posted by (C)kishir

映画のサントラからは、

・Strange DaysのWhile The Earth Sleeps

51CD5CVCXBL
51CD5CVCXBL posted by (C)kishir

これって確か中学くらいの映画だっけかな?

はまりまくって聴きまくったし、

映画も見まくったwww

気分ではHouseやらトランスも聴くし、元々HIPHOPから入っているので、DJ KRUSHとかHimuro Yoshietsuとかも聴く。

Nujabesとかもはまってたし、Jazzぽいのも好き。

音は大体色々聴く感じです。

後は家でレコード音源でしか持っていないのが多いから、それらも本当はiPhoneで聞ききてーな。

Posted at: 
2009/03/02 23:40:43
0 Comments
0 TrackBacks
Tags: 
Music
Trackback: 
http://kishi-r.com/2009/03/02/music_no_life/trackback/

ランチで中目黒「焼きや 銕 tetu」に行ってきた

今日は会社のみんなで、

中目黒にある「焼きや 銕」に行ってきた。

いわゆる鉄板焼きやさんですね。

いつもランチだと混んでいて、入れないので諦めていたんだけど今日はすんなり入れたので食べてきました。

注文したのは、ランチメニューにある

「ハーブ豚の鉄板焼き」950円

いやーガーリックチップと味噌が付いていて、

それにハーブ豚を付けて食べるのですが、

これがまた旨かったぁ〜。

その写真がこれ

IMG_0232
IMG_0232 posted by (C)kishir

ランチなので全品「ご飯、サラダ、漬物、味噌汁、小鉢付き」ですよ。

素敵ですねぇー。

ハーブ豚だけでも写真を撮ってみた。

IMG_0233
IMG_0233 posted by (C)kishir

是非また行きたいなぁー。

今度は「牛ロースのあぶり焼き」を食べてみたい。

焼きや 銕 ランチメニュー

Posted at: 
2009/02/19 00:12:05
0 Comments
0 TrackBacks
Tags: 
Other
Trackback: 
http://kishi-r.com/2009/02/19/lunch_tetu/trackback/

AIRでMP3Playerを試してみる

とりあえず勢いで作ってみた。

参考にしたサイトは、Adobe AIRでクールなMP3プレーヤーを作ってみる

上記では、タイトル名を取得しているがどうしても取れなく断念している真っ最中orz

ソースは下記

<?xml version="1.0"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">
   <mx:Script>
       <![CDATA[
       import flash.desktop.ClipboardFormats;
       import flash.events.NativeDragEvent;
       import flash.desktop.NativeDragManager;
       import flash.filesystem.File;
       import flash.media.Sound;
       import flash.media.SoundChannel;
       import flash.net.URLRequest;
       import flash.display.Sprite;
       import mx.core.UIComponent;

       [Bindable]
       private var sound:Sound;
       private var soundChannel:SoundChannel;
       private var playing:Boolean = false;
       private var file:File;
       private var pausePos:Number = 0;
       private var playBar:Sprite;
       private var spriteRight:Sprite;
       private var spriteLeft:Sprite;
       private var uic:UIComponent;

       private function initApp():void
       {
           soundChannel = new SoundChannel();
           spriteRight = new Sprite();
           spriteLeft = new Sprite();
           uic = new UIComponent;
           uic.x=122;
           uic.y=40;
           this.addChild(uic);
           spriteRight.graphics.beginFill(0x0000ff);
           spriteRight.graphics.drawRect(0, 0, 0.1, 20 );
           spriteRight.graphics.endFill();
           spriteLeft.graphics.beginFill(0x0000ff);
           spriteRight.graphics.endFill();
           spriteLeft.graphics.beginFill(0x0000ff);
           spriteLeft.graphics.drawRect(0, 22, 0.1, 20 );
           spriteLeft.graphics.endFill();
           uic.addChild(spriteRight);
           uic.addChild(spriteLeft);
           addEventListener(Event.ENTER_FRAME,enterHandler);

           addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER, dragEnterHandler);
           addEventListener(NativeDragEvent.NATIVE_DRAG_DROP, dragDropHandler);
       }

       private function dragEnterHandler(e:NativeDragEvent):void
       {
           var files:Array = e.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
           if(files != null && File(files[0]).extension == "mp3")
           {
               NativeDragManager.acceptDragDrop(this);
           }
       }

       private function dragDropHandler(e:NativeDragEvent):void
       {
           var files:Array = e.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;

           if (playing)
           {
               soundChannel.stop();
           }
           sound = new Sound();
           sound.load(new URLRequest(File(files[0]).url));
           soundChannel = sound.play();
           playing = true;
       }

       private function musicPlay():void
       {
           try{
               soundChannel = sound.play(pausePos);
               playing = true;
           }catch(e:Error){
           }
       }

       private function enterHandler(event:Event):void
       {
           spriteRight.width = soundChannel.rightPeak * 100;
           spriteLeft.width  = soundChannel.leftPeak  * 100;
       }

       private function musicPause():void
       {
           if(playing == true){
               pausePos = soundChannel.position;
               soundChannel.stop();
           }
           playing = false;
       }

       private function musicStop():void
       {
           if(playing == true){
               soundChannel.stop();
               pausePos = 0;
           }
           playing = false;
       }

       private function selectHandler(event:Event):void
       {
           sound = new Sound();
           sound.load(new URLRequest(File(file).url));
           soundChannel = sound.play();
           playing = true;
       }

       private function selectFile():void
       {
           musicStop();
           playing = false;
           file = new File();
           file.browse();
           file.addEventListener(Event.SELECT,selectHandler);
       }

       private function drawBar(col:uint):Sprite
       {
           var bar:Sprite = new Sprite();
           bar.graphics.lineStyle(0, col);
           bar.graphics.beginFill(col, 1);
           bar.graphics.drawRect(0, 0, 1, 10);
           bar.graphics.endFill();
           bar.x = 20;
           bar.y = 370;
           return bar;
       }
       ]]>
   </mx:Script>
   <mx:Button id="openBtn" label="OPEN" x="10" y="10" width="80" click="selectFile();"/>
   <mx:Button id="playBtn" label="PLAY" x="10" y="35" width="80" click="musicPlay();"/>
   <mx:Button id="stopBtn" label="STOP" x="10" y="60" width="80" click="musicStop();" />
   <mx:Button id="pauseBtn" label="PAUSE" x="10" y="85" width="80" click="musicPause();" />
   <mx:TextInput id="titleText" color="0xffff00" backgroundColor="0x000000"  x="100" y="10"/>
   <mx:Label text="R" x="100" y="40" width="20"/>
   <mx:Label text="L" x="100" y="62" width="20"/>
</mx:WindowedApplication>

こんな感じに書いてみた。

一応「一時停止」と「ドラッグアンドドロップ」を足してみた。

が、

・一時停止をクリックしてから、停止を押しても効かない

・演奏中にファイルを選択しようとすると演奏が止まってしまう

・複数のファイルを選択してリスト表示出来ない

・そもそもまだタイトル名が取れていない

・mp3にしか対応していないので、mp4やm4a、WAVにも対応する必要がある

など、 まだまだ改善する点もあるし、全然オブジェクト指向に作られていないので、別のasファイルにする必要もある。

他にもボタンなどは、直に書かずに何かしら生成出来るような仕組みでないと柔軟ではないな。

そこら辺も考慮する必要があるので、もうちょっと頑張ってみる。

とりあえず現状の画面は下記になる。

musicplayer
musicplayer posted by (C)kishir

ってかActionScriptにもFlexにもまだまだ慣れていないので、色々と勉強する事が盛りだくさんな今日この頃ですなぁー。

※09/02/17 追記

t-matsuda氏に助言をいただき、試してみました。

修正箇所は下記。

private function dragDropHandler(e:NativeDragEvent):void
{
    var files:Array = e.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;

    if (playing)
    {
        soundChannel.stop();
    }
    sound = new Sound();
    sound.load(new URLRequest(File(files[0]).url));
    //soundChannel = sound.play();
    //playing = true;
    musicPlay();
}

は、musicPlayメソッドにて再生するように変更して、

同じくselectHandlerにても同じようにmusicPlayメソッドを使用する。

private function selectHandler(event:Event):void
{
    sound = new Sound();
    sound.load(new URLRequest(File(file).url));
    //soundChannel = sound.play();
    //var filename:FileReference = FileReference(event.target);
    //playing = true;
    musicPlay();
}

で次がキモ。

private function musicPlay():void
{
    try {
        soundChannel = sound.play(pausePos);
        soundChannel.addEventListener(Event.ID3, onID3Info, false, 0, true);
        playing = true;
    }catch(e:Error){
    }
}

musicPlayメソッドにて、リスナーをEvent.ID3イベントを監視するサウンドのインスタンスに追加する。

これにより送られてくるイベントオブジェクトからサウンドのid3プロパティを参照が可能になる。

それが下記。

private function onID3Info(evt:Event):void
{
    var id3Props:ID3Info = evt.target.id3;
    for (var propName:String in id3Props) {
        trace("ID3 Tag", propName, "=", id3Props[propName]);
    }
}

上記のtraceしている部分がそう。

このtrace部分をテキストにぶち込むようにすれば、OKなはずだが・・・そもそもid3情報が無いものばかりなのかやはりnullというかtraceしても何も出ない。

ん〜そもそもAdobe® Flex™ 3 リファレンスガイドを見た所、ID3Infoはランタイムバージョン : 1.0 9

ってなってる。 ランタイムバージョンが1.0 9って事は1.5ではダメってことか?

もう面倒だからファイル名から取って拡張子でも消すか?

var filename:FileReference = FileReference(event.target);

でファイル名も取れるしなぁー、悩ましい。。。

Posted at: 
2009/02/16 23:17:54
2 Comments
0 TrackBacks
Tags: 
ActionScript
AIR
Flex
Trackback: 
http://kishi-r.com/2009/02/16/air_mp3player/trackback/

Pythonでlivedoorクリップ数とはてブ数とYahooブックマーク数を取得

Pythonで書かれている参考ってあんまり無いので、やってみた。(ってかあれか、別に書くほどの事じゃないからみんな書かないのかwでもPerlはあるんだよなぁー。)

livedoorとはてブは「XML-RPC」で取得しています。

YahooブックマークはXMLで返ってくるので、そいつをBeautifulSoupなんかでパースすればOK

livedoor

URI → http://rpc.clip.livedoor.com/count

methodName → clip.getCount

parameters → 件数を取得したい URL を指定(最大 50 件まで指定可能)

のようなので、実際に試してみると下記のようになる。

>>> import xmlrpclib
>>> server = xmlrpclib.ServerProxy('http://rpc.clip.livedoor.com/count')
>>> TARGET_URL = 'http://kishi-r.com/2008/04/pythonlxmlamazonapi/'
>>> server.clip.getCount(TARGET_URL)
{'http://kishi-r.com/2008/04/pythonlxmlamazonapi/': 1}

1件だけあるみたいw

はてなブックマーク

URI → http://b.hatena.ne.jp/xmlrpc

methodName → bookmark.getCount

parameters → 件数を取得したいURLを指定(複数指定可能/50件まで)

のようなので、実際に試してみると下記のようになる。

>>> server = xmlrpclib.ServerProxy('http://b.hatena.ne.jp/xmlrpc')
>>> TARGET_URL = 'http://kishi-r.com/'
>>> server.bookmark.getCount(TARGET_URL)
{'http://kishi-r.com/': 4}
>>> server.bookmark.getTotalCount(TARGET_URL)
118

のようです。 サイトトップのブックマーク数は「4件」で、サイト全体の場合は「118件」なのか。 まぁーそんなブックマークされる事も書いていないし、そんなもんかw

試しにMokujiを見てみる。
>>> TARGET_URL = 'http://mokuji.deckkr.jp/'
>>> server.bookmark.getCount(TARGET_URL)
{'http://mokuji.deckkr.jp/': 311}
>>> server.bookmark.getTotalCount(TARGET_URL)
345

うん。やっぱオレのブログより全然多いねw

・Yahooブックマーク(本家に無いのかな?ちゃんと探してないからわからん) ※参考URL:blog.katsuma.tvを参考にしました。

URI → http://num.bookmarks.yahoo.co.jp/yjnostb.php?urls=調べたいURL

のようなので、実際に試してみると下記のようになる。

>>> url = 'http://num.bookmarks.yahoo.co.jp/yjnostb.php?urls=http://kishi-r.com/'
>>> xml = urllib2.urlopen(url).read()
>>> xml'
<?xml version="1.0" encoding="utf-8" ?>\n<results>\n<SAVE_COUNT u="http%3A%2F%2Fkishi-r.com%2F" ct="0" />\n</results>\n<!-- bm-num11.ssearch.kks.yahoo.co.jp uncompressed/chunked Mon Feb  9 17:06:50 JST 2009 -->\n'>>>
寂しいことに「ct="0"」となっているので、0件なのね。 じゃーMokujiで試してみる。
>>> url = 'http://num.bookmarks.yahoo.co.jp/yjnostb.php?urls=http://mokuji.deckkr.jp/'
>>> xml = urllib2.urlopen(url).read()
>>> xml
'<?xml version="1.0" encoding="utf-8" ?>\n<results>\n<SAVE_COUNT u="http%3A%2F%2Fmokuji.deckkr.jp%2F" ct="25" />\n</results>\n<!-- bm-num11.ssearch.kks.yahoo.co.jp uncompressed/chunked Mon Feb  9 17:09:02 JST 2009 -->\n'

お、「25件」あるみたいっすね。

他必要そうなのって「delicious」くらいかな?

でもサイトがリニューアルしてるから、何かと変わってるんだろうなぁー。

Posted at: 
2009/02/09 17:30:51
0 Comments
1 TrackBack
Tags: 
Python
Trackback: 
http://kishi-r.com/2009/02/09/bookmark_api/trackback/

人気ブログランキング - kishi-r.com track feed
あわせて読みたい