NHKラジオ音声ファイルのダウンロードプログラム:2024年版の変更点と実装方法

IT

はじめに

この記事では、NHKの音声ファイルを自動でダウンロードするプログラムについて説明します。特に、2024年度の仕様変更に対応した最新のプログラムについて解説します。プログラムの実装方法や変更点を初心者にも分かりやすく紹介しますので、ぜひ参考にしてください。

記事の内容

  1. 2024年度の変更内容
  2. プログラムの変更点と実装方法
  3. まとめ

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}', 'キャンセル')

プログラムの説明

  1. ライブラリのインポート:
    • requests: Webからデータを取得するためのライブラリ。
    • subprocess: 外部プログラムを実行するためのライブラリ。
    • os: ファイルやディレクトリ操作のためのライブラリ。
  2. ダウンロード対象リストの読み込み:
    • nhk_downloader.txt ファイルからダウンロード対象のURLを読み込みます。
  3. 各URLに対して音声ファイルをダウンロード:
    • URLからJSONデータを取得し、番組タイトルに基づいてフォルダを作成。
    • 各エピソードの音声ファイルをダウンロードし、指定したメタデータを設定。
  4. 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の音声ファイルをダウンロードできます。ぜひ、自分の環境で試してみてください。

コメント

  1. tosiki より:

    上にあるのをコピーして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に取得したいラジオのアドレスが正しく入力されているでしょうか?

タイトルとURLをコピーしました