【DUGA】サンプル動画一括ダウンロード方法(Selenium不使用)
概要
DUGA(https://duga.jp/) は大手のFANZAには無いマニアックな作品が多く、一部のマニアから人気の動画サイトになっています。
アフィリエイト素材としてサンプル動画を使うことができるかどうかは確認しておりませんので、各自で判断してください。
ダウンロード方法
年齢確認
まずは年齢確認の仕組みを確認します。
トップページ(https://duga.jp/)にアクセスした時には年齢確認の画面がでますが、どうやらcookieの設定などはしてないようでした。
そのため、作品URLやサンプル動画を直接指定してもダウンロード可能です。
念のためChrome Developer Toolsで確認してもそれらしいcookieはありませんでした。
URL構造
pythonだとこんな感じでしょうか。
作品URLからVIDEOIDを取り出し、動画ファイルのURLとして組み立てていきます。
video_name = url.split("/")[-2]
video_url = "https://duga.jp/prog/download/?id=%s&viewtype=1&fname=sample/sample_6000_hd.mp4"%video_name
作品URLを"/"で分割して後ろから2番目が作品IDになります。
その作品URLをダウンロードURLに組み込むことで、動画ファイルのダウンロードURLが完成です
URLリスト作成
今回は一括ダウンロードが目的ですので、ダウンロードする作品リストを作ります。
新着順はsort=newがありますが、人気順はこのパラメータがありません。
作品数も100が標準のようで、viewcountが無いと100件のようです。
次に、ここのpagenoがちょっとやっかいです。
1ページ目:pageno=0
2ページ目:pageno=1
3ページ目:pageno=2
のように、pageno=ページ数-1になります。
いくつかアクセスを試した結果、このように一般化できました
viewcount=100とpageno=0を設定してもアクセス可能でした。
200件、300件と大量ダウンロードする時はこのへんにお気をつけください。
次に、作品リストURLから作品URLの抜き出しですが、先に解説したURL構造を見ると、作品URLには『ppv』というパスが含まれていることがわかります。
これを正規表現でパースするとこんな感じでしょうか。
aタグでリンク先(href)にppvが含まれていて、末尾が/で終わるものを抽出という意味です。
res = requests.get(target_url,cookies=data, headers=header)
soup = bs4.BeautifulSoup(res.text, 'html.parser')
video_list = soup.find_all('a', {'href':re.compile("/ppv/.+/$")}
あとはここで作ったリストを元に、各ファイルをダウンロードすればOK
宣伝
今回紹介した方法を使って実装したソフトウェアをBOOTHで販売しています。ぜひご活用ください!!
この記事が気に入ったらサポートをしてみませんか?