なんでも歌えるカラオケアプリを作るにあたって音源を確保する必要があったので
いろいろ探してたらyt-dlpなるものを発見した。
pythonで実装しよう!としたのだが、実行環境がコマンドライン上がメインだったので
コード内で実行するのに苦戦した。同じ苦しみを味合わないようにメモを残します。
①まずインストール
pip install yt-dlp
必要ならば仮想環境でのインストール
③pythonに組み込んでみる(mp3をダウンロード)
def download_with_info(youtube_url, output_dir): out_dir = "./output" os.makedirs(out_dir, exist_ok=True) ydl_opts = { "quiet": True, "format": "bestaudio/best", "outtmpl": f"{out_dir}/%(id)s.%(ext)s",#指定フォルダに[videoid].mp3で保存する "postprocessors": [{ "key": "FFmpegExtractAudio", "preferredcodec": "mp3", "preferredquality": "192", }] } with yt_dlp.YoutubeDL(ydl_opts) as ydl: info = ydl.extract_info(youtube_url, download=True) return info#動画の情報を返す
④おまけ: プレイリストからビデオID達をリストにして返す
def get_playlist_videoids(playlist_url): ydl_opts = { 'quiet': True, 'extract_flat': True, } try: with yt_dlp.YoutubeDL(ydl_opts) as ydl: info = ydl.extract_info(playlist_url, download=False) if 'entries' in info: video_ids = [video_data['id'] for video_data in info['entries']] else: video_ids = [] # 'entries'キーが存在しない場合は空のリストを返す except yt_dlp.utils.DownloadError as e: print(f"エラーが発生しました: {e}") video_ids = [] # エラーが発生した場合は空のリストを返す return video_ids
サービス紹介
洋楽も最新曲もニッチな曲も歌えるカラオケアプリを作りました!
ぜひ使ってみてください。
カラオケアプリKalyokeへアクセス