HSP | YouTubeダウンローダー (仮)

HSP | YouTubeダウンローダー (仮)

YouTubeが仕様変更して以前のが使えないので、新しいの作ろうと思ったんですけど、もうちょっと高機能なのにしたいので、いったんここまでにしときます。

#include "hspinet.as"
netinit
res=0
estr=""
movie_id="rm8T6EwKNiI" // YouTube動画ID
sdim html,150000 // YouTube動画再生ページのHTMLソースが代入される
index_c=0 // playerConfigのインデックス
length_c=0 // playerConfigの長さ
_json=0 // jsonを扱うときの
sdim playerConfig,15000 // playerConfig (json形式)
sdim url_encoded_fmt_stream_map,10000 // url_encoded_fmt_stream_map
sdim movie_info_2,10000 // (内容固定)
sdim movie_info_1,10000 // (内容可変)
sdim movie_info,10000,20,5 // 使いやすいようにurl_encoded_~の内容を入れる変数
parms="","" // = の左と右
cnt2=0 // 外のcntを代入しておく用
cnt3=0 // 動画のある画質のどの情報か
movie_exist=0 // 動画の個数

netagent "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)"
neturl "http://www.youtube.com/"
netrequest_get "watch?v="+movie_id
*waiting
netexec res
if res>0 : goto *comp
if res<0 : goto *bad
await 50
goto *waiting

*bad
neterror estr
dialog "ネット接続時のエラー : "+estr,1,"エラー"
end

*ehtml
dialog "HTML解析中のエラー",1,"エラー"
end

*comp
netgetv html
index_c=instr(html,0,"yt.playerConfig = ")
if index_c=-1 : goto *ehtml
index_c+=18
length_c=instr(html,index_c,"};")
if length_c=-1 : goto *ehtml
length_c+=1
playerConfig=strmid(html,index_c,length_c)
jsonnkf "Ws"
jsonopen _json,playerConfig // 変数_jsonは使い回し
jsongetobj _json,"args"
jsongets url_encoded_fmt_stream_map,"url_encoded_fmt_stream_map",_json
jsonclose
split url_encoded_fmt_stream_map,",",movie_info_2
foreach movie_info_2
split movie_info_2(cnt),"&",movie_info_1
cnt2=cnt
foreach movie_info_1
split movie_info_1(cnt),"=",parms
switch parms(0)
case "url"
cnt3=0
swbreak
case "quality"
cnt3=1
swbreak
case "fallback_host"
cnt3=2
swbreak
case "type"
cnt3=3
swbreak
case "itag"
cnt3=4
swbreak
swend
urldecode movie_info(cnt2,cnt3),parms(1)
loop
loop
movie_exist=length(movie_info_2)

// 以下テスト
txt=""
repeat movie_exist
txt+=movie_info(cnt,0)+"\t"+movie_info(cnt,1)+"\t"+movie_info(cnt,2)+"\t"+movie_info(cnt,3)+"\t"+movie_info(cnt,4)+"\n"
loop
bsave "test.txt",txt,strlen(txt)

「test.txt」というファイルを出力します。
タブで区切ってるんでエクセルで読み込めば表で表示できます。(本当はエクセルのファイルとして直接出力できたような気もするけど面倒くさいからタブで。)
HSPINETでダウンロードの処理もできますけど、YouTubeの動画ファイルだけに直接アクセスできないんで、どうやったらできるか調べているところです。
ではまた。


「HSP | YouTubeダウンローダー (仮)」への2件のフィードバック

  1. わわ分からないwwww
    難しいですwwww

  2. wwwwwww
    HSPというプログラミング言語で書いたものです。
    あなたもやってみません?

コメントは受け付けていません。