はじめに
この記事では、NHKの音声ファイルを自動でダウンロードするプログラムについて説明します。特に、2024年度の仕様変更に対応した最新のプログラムについて解説します。プログラムの実装方法や変更点を初心者にも分かりやすく紹介しますので、ぜひ参考にしてください。
記事の内容
- 2024年度の変更内容
- プログラムの変更点と実装方法
- まとめ
2024年度の変更内容
2024年度には、NHKの音声ファイルダウンロードに関するいくつかの仕様変更がありました。具体的には、JSONファイルの構造やデータ取得のためのURLが変更されています。これにより、従来のプログラムでは正しく動作しなくなったため、新しい仕様に対応したプログラムの修正が必要です。
プログラムの変更点と実装方法
以下は、2024年度の仕様変更に対応した最新のダウンロードプログラムです。このプログラムは、指定されたリストに基づいてNHKの音声ファイルをダウンロードします。
import requests
import subprocess
import os
# ダウンロード対象リスト読み込み
with open('nhk_downloader.txt') as f:
urls = f.readlines()
for url in urls:
url = url.strip()
if url == '':
continue
resp = requests.get(url)
js = resp.json()
# フォルダの作成
program_title = js['title']
if not os.path.exists(program_title):
os.makedirs(program_title)
# 音声ファイルダウンロード
for episode in js['episodes']:
title = episode['program_title']
date = episode['onair_date']
file_url = episode['stream_url']
if not os.path.exists(f'{program_title}/{title}.mp3'):
cmd = f'ffmpeg -y -vn -v verbose -http_seekable 0 -i "{file_url}" -id3v2_version 3 -metadata artist="NHK" -metadata title="{title}" -metadata album="{program_title}" -metadata date="{date}" -ab 48k -ar 24000 -ac 1 "{program_title}/{title}.mp3"'
result = subprocess.run(cmd, shell=True)
print(f'{title}', 'ダウンロード', result.returncode, result.stdout)
else:
print(f'{title}', 'キャンセル')
プログラムの説明
- ライブラリのインポート:
requests
: Webからデータを取得するためのライブラリ。subprocess
: 外部プログラムを実行するためのライブラリ。os
: ファイルやディレクトリ操作のためのライブラリ。
- ダウンロード対象リストの読み込み:
nhk_downloader.txt
ファイルからダウンロード対象のURLを読み込みます。
- 各URLに対して音声ファイルをダウンロード:
- URLからJSONデータを取得し、番組タイトルに基づいてフォルダを作成。
- 各エピソードの音声ファイルをダウンロードし、指定したメタデータを設定。
- FFmpegを使用した音声ファイルのダウンロード:
ffmpeg
コマンドを使用して音声ファイルをダウンロードし、必要なメタデータを設定します。
nhk_downloader.txtの説明
nhk_downloader.txt
ファイルには、ダウンロード対象のNHK番組のJSONデータへのURLがリストされています。各URLは、前回の記事より取得してください。
https://www.nhk.or.jp/radio-api/app/v1/web/ondemand/series?site_id=0916&corner_site_id=01
https://www.nhk.or.jp/radio-api/app/v1/web/ondemand/series?site_id=0915&corner_site_id=01
これらのURLを nhk_downloader.txt
ファイルに記載し、プログラムがこのファイルを読み取ることで、各番組の音声ファイルを自動的にダウンロードします。
まとめ
2024年度の仕様変更に対応するために、NHKの音声ファイルダウンロードプログラムを修正しました。このプログラムは、初心者にも分かりやすいように設計されており、簡単にNHKの音声ファイルをダウンロードできます。ぜひ、自分の環境で試してみてください。
コメント
上にあるのをコピーしてnhk_downloader.txtを作成
実行すると
raise InvalidSchema(f”No connection adapters were found for {url!r}”)
requests.exceptions.InvalidSchema: No connection adapters were found for
と表示
nhk_downloader.txtに取得したいラジオのアドレスが正しく入力されているでしょうか?