widgetown 開発チームブログ(仮)

5月 27th, 2008

AS2 でyoutubeパース

Posted by KOBAYSU in as2.0

あるベテランCプログラマーの方が

「正規表現が内部的にどれくらい効率悪い処理をしてるかわかってるの?」

といったかどうかは知りませんがAS2.0では正規表現がありません。

男だったらString.splitで気合でパース。

基本的には中のjsのURL記述から必要なパラメータをとってきているのですが、パラメータの順番がころころ変わるので変わっても対応できるようにしました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function parseYoutubeHTML(htmlString:String):String
{
  var line:String = str.split('watch_fullscreen')[1].split(';')[0];
  var ar:Array = line.split('&');
 
  var video_id:String;
  var t:String;
  var l:String;
 
  var i:Number = ar.length;
  var b:Boolean = true;
 
  while( i-- > 0 && b )
  {
    b =  video_id == undefined || t == undefined || l == undefined ;
 
    if(ar[i].indexOf('video_id=')==0)
    {
      video_id = ar[i].split('=')[1];
      continue;
    }
 
    if(ar[i].indexOf('t=')==0)
    {
      t = ar[i].split('=')[1];
      continue;
    }
 
    if(ar[i].indexOf('l=')==0)
    {
      l = ar[i].split('=')[1];
      continue;
    }
  }
 
  //youtubeの定理
    var url:String = 'http://youtube.com/get_video.php?' 
    + 'video_id=' + video_id  + '&l=' + l  
    + '&l&t=' + t;		
 
    return url;
 
}

これそのままJSでも動くかもしれないので誰かやってみてください。

Comments are closed.

現在コメントフォームは利用できません。

-->