読者です 読者をやめる 読者になる 読者になる

座敷牢日誌

都落ちした元SEがソフトウェアやネット関連のことを書いています

xvideos.comのFLVファイルのURL(ならびに動画の関連データ)の取得方法

python

今、使っている端末がプアーなだけでなく、無線LANの回線もかなり細いので、Youtuebやニコ動みたいなストリーミングがほぼ観れない。もちろん、エロ動画サイトも。
ダウンロードしてみるしかないわけで、別サイトのダウンロード用URL抽出サービスを利用するという方法があるんだけど。ただ、保存するわけでもないのにいちいちサイトを開いてURLを貼りつけて……、というプロセスは少し煩わしい。そこで、スクレイピングで動画URLを引っこ抜けないか調べてみたら結構簡単なことだった。
pythonとBeautifulSoupを組み合わせて、xvideos.comのflvファイルのURLを抽出する例を紹介する。

#!/usr/bin/python
# coding: utf8

import sys
import urllib2
from BeautifulSoup import BeautifulSoup

url = sys.argv[1]
soup = BeautifulSoup(urllib2.urlopen(url).read())
u"""
embedタグにある要素flashvarsを&でsplitし、=でsplitする。
flv_url=... が動画のurl
"""
flashvars = dict(
        [(s[0], urllib2.unquote(s[1])) for s in map(lambda x:x.split("="),
            soup.find("embed").get("flashvars").split("&"))])
for k, v in flashvars.items():
    print k, "=>", v

汚いソースで申し訳ないが、やっていることはこういう感じ。

  • embedタグを取得する
  • そのなかの要素"flashvars"の値を取得する
  • その値を"="で分割(split)する

すると、これだけの値が戻ってくる。

  • sponsor_dynamicad
  • width
  • theskin
  • sponsor_name
  • record2257
  • related
  • height
  • flv_url
  • key
  • url_bigthumb
  • sponsor_url
  • linkurl
  • sponsor_desc
  • id_video

それぞれがどういう値なのかはほぼ名称の通りだと思うけど、flvファイルのURLは「flv_url」のなかに入っている。xvideos.comの動画を含むエロ動画を紹介しているサイトはいくつもあるので、よく行くサイトなどを適当に見繕って、そのなかから「無修正 + 好みのキーワード」でピックアップしたxvideosのURLをスクリプトに放り込んでダウンロードしてやれば、エロ動画収集&閲覧を効率化できる。

これを調べるのはそんなに難しくなかったので、他の動画サイトにもいくつか挑戦してみたところ、やはりけっこう簡単だった。今のところ、empflixとhardsextubeについては把握している。ただ、解析にかかる時間と得られるエロ動画の種類と質と数のレシオがどうしてもxvideos.comより劣るので、あまりやる気にはならない。

やってみて気づいたことだけど、たいていのサイトでその動画のメタデータ(タイトル・Description・サムネイル・関連動画)を得られる。そしてたいてい埋込み用のタグも公開しているので、複数のエロ動画サイトに跨った横断検索やマッシュアップサイトは案外簡単に構築できるのかもしれない。

広告を非表示にする