トップページに戻る

Category

AllArchives

Checker

Credit

PANDORAプレイリスト仕様

ちょとPANDORA.TVで遊んでいたので、PANDORA.TVの「プレイリスト」に関する仕様をまとめておく。


PANDORA.TVとは、韓国発の動画共有サイト。今年HD(1280×720/H.264/2Mbps)にも対応した、という感じのサイトで、まぁ詳細は以下で。

参考:定番サイトの高画質版「Pandora.TV HD」で動画を探しゲット :教えて君.net

それで、上記事でも書いたんだが、動画の本体ファイルアドレスが、動画の個別再生ページに内に記載されています。一般的な「PANDORA動画のダウンロードツール/サービス」というのは、この「ソース内の動画アドレス」を拾っているはずだ。

しかし、ネット上では、「PANDORAの動画が、場合によって落とせないことがあったりして良く分からない」とった声があったりする。おそらく、これは「プレイリスト」の仕様故に出てくる「声」だ。「PANDORA動画のダウンロード」ということを考える場合には、「プレイリストの仕様」という問題を避けて通れない。この仕様に関して。



<PANDORAのプレイリスト関連の仕様とDL時の問題点>

PANDORAで検索を行うと、まぁ当然検索結果として動画が表示される訳です。これらをクリックした場合に開かれるのは「video.ptv」。このページが、上記の「動画の個別再生ページ」であり、つまり「動画の本体ファイルアドレスが記載されているページ」だ。

そして、検索結果ページの上部、「プレイリスト」内の項目をクリックしたときに開かれるのは、プレイリストページ(playlist.ptv)。

画面は↑。つまり、すごく「動画再生ページ」っぽい。ぽいけど、これは別物です。「別物」で何が問題かというと

  • 動画の本体ファイルアドレスが記載されていない
  • 右側に表示されている「同一プレイリスト内動画一覧」はJavaScriptによる描画
  • さらに、「同一プレイリスト内動画一覧」の各動画リンクは「個別再生ページ」ではない(詳細な動作は割愛するが、要は、ページ遷移なしで他の動画を開けるようになっている、つまりプレイリストページ内には「各動画個別再生ページへのリンク」が存在しない)

と、いうことで、つまり、通常の方法では、「プレイリストページ」から「各動画の個別再生ページ」に辿り着くことができず、従って「各動画の動画本体ファイルアドレス」へ辿り着けない。

  1. プレイリストページ
  2. 個別再生ページ
  3. 動画本体ファイルアドレス

2と3は(ソース内に書いてあるから)繋がるんだが、1と2が、普通の方法では繋がらないのだ。

</PANDORAのプレイリスト関連の仕様とDL時の問題点>


と、まぁ、上記のような理由で、「如何にしてプレイリストページ個別再生ページを繋ぐか」という問題が発生する訳です。で、以下の方法で繋げます。

プレイリストページのURLから情報を取得

プレイリストページURL:ttp://channel.pandora.tv/channel/playlist.ptv?ch_userid=プレイリストユーザーID&ref=spl#プレイリスト番号.ページ番号

プレイリストユーザーID:プレイリスト作者のID。必ずしも各動画のアップロードユーザーとは一致しない

プレイリスト番号:各リストに対してユニークに与えられているID

ページ番号:25を超える動画が登録されているプレイリストは複数のページに分割されている

取得した情報を元にPOSTを行う

POSTする相手:ttp://channel.pandora.tv/json/v003/playlist.dll/init

標準入力:json={ "userid": "プレイリストユーザーID", "limit": "25", "categ_id": "プレイリスト番号", "page": "ページ番号" }

レスポンスから各動画のIDを取得

レスポンスが異常に長いので、(現時点の)サンプルをプレーンテキストで上げておきます。要は、このレスポンス内には

  • プレイリストユーザーの作成した全プレイリストの情報
  • 再生中プレイリスト内各動画の情報

が記載されている。ここで欲しいのは後者で。部分的に抜き出すと以下。

list:[{prg_id:"動画ID1",prg_title:"動画タイトル1",userid:"プレイリストユーザーID",prg_org_userid:"動画ユーザー1",prg_chname:"プレイリスト名",embed_pub:1,prg_reg_date:"2/month",prg_runtime:"動画1の再生時間",play_index:1,open_pub:0,resolquality_type:1,localfile_name:"動画本体ファイル名1",prg_pub:0,status:30003,adult_chk:0,fs:73226210,vs:"解像度",language:40003,reg_date:"アップロード日"},{prg_id:"動画ID2",prg_title:"動画タイトル2(以下略)

動画ID1:一つ目の動画のID

動画タイトル1:一つ目の動画のタイトル

動画ユーザー1:一つ目の動画のアップロードユーザー

動画本体ファイル名1:動画本体ファイルのファイル名(詳細後述)

各動画の個別再生ページURLを生成

各動画の個別再生ページURL:ttp://channel.pandora.tv/channel/video.ptv?ch_userid=動画ユーザー1&prgid=動画ID1&categid=all&page=1

これで繋がる。「動画本体ファイル名1」が記載されているので、直接ダウンロードを行えそうな予感がするんだが、ディレクトリ名が不明。動画本体ファイルアドレスは、例えば

ttp://flvg.pandora.tv/flv/_user/l/u/動画ユーザー1/92/動画ファイル名1.flv

なので、この「92」がどこから生まれているのか分かれば、という感じ。上記のレスポンス内に「92」が見あたらないので何とも……。


ともかく、

  1. プレイリストページ
  2. 個別再生ページ
  3. 動画本体ファイルアドレス

2と3は元々(ソース内に書いてあるから)繋がっていて、そしてこれで1と2が繋がる、と。

……で、こっそりとこんなん作ったんで、まぁどなたかの参考になれば、ということで……。

SeeAlso

SameSubCategory

Footprint

Navigation

Comment

PostForm

情報を登録  
コメントは本文以外省略可能で、当方の承認後掲載されます