pep-min report

生活やオピニオンや学んだことについて書いていく雑記ブログ

スクレイピングでwebサイトからフリーのBGMを自動的にダウンロードしよう[Python3]

こんにちは。

自分は最近ゲームを作っていました。

サンプルゲーム「RPGだよ」バージョン1.0.2 – RPGMV投稿所

そこで思ったのが、

「ゲームのbgmをいちいち手動でダウンロードするのめんどくさくない?」

です。

今回のゲームはフリーのBGMを4つしか使っていませんでした。

ですがこれから本格的なゲームを作るにあたって、

BGMを10とか100とか使うこともあるかもしれません。

なにより自分はゲーム実況もやっているので、なにかとフリーのBGMにはお世話になります。

なので、

魔王魂からフリーBGMを自動的にダウンロードするスクリプト

を作ります。

参考にしたサイト様

【Python/beautifulsoup4】サイト内の全ての画像ファイルを自動ダウンロード | アルゴリズム雑記

Python - Anacondaで画像収集(100085)|teratail

正直今回書いたスクリプトは上記2つのサイトを参考にちゃちゃっと組み合わせて画像ファイルを音楽ファイルに変えただけです。

先人たちは偉大でした・・・。

やりたかったこと

・魔王魂のHTMLをパース(解析)する

ogg(音声ファイル)を見つけたらダウンロードする

・ダウンロードしたものはローカルディレクトリのmaouに入れる

できたもの

・魔王魂のHTMLをパースする

・mp3を見つけたらダウンロードする(なぜかoggはできなくてmp3だとできた)

・ダウンロードしたものがデスクトップに入る(maouのパスを指定したはずなのだがデスクトップにインストールされてしまった)

実際に書いたもの

疑問点

・なぜoggはできなかったのにmp3だとできたのか

・なぜパスを指定したのにデスクトップに保存されてしまうのか

追記2018/9/23 19:40

oggほしいならaudioタグではなく a タグでhref属性のあたいがoggでおわるものを集めないと駄目ですね」

TwitterでDMいただきました。ありがとうございます。

さっそく修正

これでoggファイルでできるようになりました。

あとはデスクトップにダウンロードされる不具合を直すだけですね。

更に追記

「パス指定の最後に\入れたらどうなる?」

TwitterでDMいただきました。ありがとうございます。

修正

Twitterは天才プログラマーが多すぎる・・・

なぜコードを見るだけで問題がわかるのか。

というわけでできました。

本当にありがとうございます。

作ってみた感想

「めっちゃハマる(詰まる)」

ハマるってのは業界用語で詰んだと同じ意味です。

めっちゃ詰みます。

エラー調べてみて答えが日本語で書いてあると最高。

全部英語ならGoogle翻訳でどうにか解読。

あれ、対処法なくね?って時はもう無理ってなりました。

趣味プログラミングの限界を感じる・・・

でもそのための質問サイトがあって、

なんやかんや1日以内に答えが返ってくることがほとんどです。

そういうのを活用したりTwitterやブログに投げてプロの方々からありがたく教わるのが独学の正攻法かなと感じました。

そして初めて自分で作った成果物だったりもしますが・・・

すこぶる感動しました。

僕は学生で学業とアルバイトと他の趣味で時間が取れたり取れなかったりしますが、

時間を作って新しい機能を追加したいところです。

これから追加したい機能

・魔王魂すべてのページからダウンロードして、魔王魂ディレクトリの中にファンタジー、現代等のジャンル分けをする

・魔王魂以外の有名なフリーbgmサイトから取れるようにする(リクエストとかあれば教えてください)

ogg以外にも、mp3などの拡張子に対応し、魔王魂/ファンタジー/mp3,魔王魂/ファンタジー/ogg的なディレクトリ分けをする

・引数にサイトのURLとダウンロードしたい拡張子を入力することでもダウンロードができるようにする(テンプレート的な感じでいくつかのサイトは用意)

・処理が複雑になるとサイトにかける負荷が大きくなるので、フリーのBGMを公開してくれてるサイト様に迷惑がかからぬように、最大限スクリプトを軽くする(出来たものはオープンソースを公開)

その他「こうしてみたらいいんじゃない?」ってのがあればTwitterのDMかコメントをください!

アドバイスをください

このブログのコメントや、僕のTwitter

「ここが間違ってるよ!」

って教えてください。

twitter.com