前報で題記のラジオ番組を自動で録音することに挑戦する旨、記しました。結構なハードルで試行錯誤すること数日、やっとできました。左下の画像が録音した番組をiPhoneのCloudBeatsと言うアプリで見たものです。一番下の本日の放送分は自動で指定フォルダーにダウンロードできました。ところがです、ごく最近になってわざわざ録音することなく同じ番組を別アプリで聞くことができることを発見しました。発見とは大袈裟ですが、iPhoneでは標準アプリのPodcastで番組検索すると、トップ番組のランク12位にこの番組が載っていました。これをクリックして登録すれば、右下の画面で操作することができます。今までPodcastアプリを削除していたため、発見が遅れました。やれやれです。
左画面のCloudBeatsではほとんどのラジオ番組をこれで聞いていますので、専用アプリに一元化して聞くのに便利で、この先も週一にWindowsノートPCで自動録音したいと思っています。次いでにこの自動化にはPythonのプログラム言語を使っていて、そのスクリプトを以下、ご参考まで記します。もし、Pythonに馴染みのある方は実行してみてください。日付指定することなく、いつでも最新の題記の番組を指定フォルダーにダウンロードできるはずです。
=== 以下、Pythonスクリプト ===
# coding: utf-8
import datetime # 日付関数をインポート
dt_now = datetime.datetime.now() # 本日の日付を取得
def getMonday(weekday): # def以下、本日と月曜日が何日差か調べる
today = datetime.date.today()
if(weekday == 0):
monday = today – datetime.timedelta(days = 0)
elif(weekday == 1):
monday = today – datetime.timedelta(days = 1)
elif(weekday == 2):
monday = today – datetime.timedelta(days = 2)
elif(weekday == 3):
monday = today – datetime.timedelta(days = 3)
elif(weekday == 4):
monday = today – datetime.timedelta(days = 4)
elif(weekday == 5):
monday = today – datetime.timedelta(days = 5)
else:
monday = today – datetime.timedelta(days =6)
return monday
weekday = datetime.date.today().weekday() # 本日と月曜日との日付差分の結果
monday = getMonday(weekday) # 月曜日更新されるまでの最新月曜日の日付(年月日表記)
year = dt_now.year # 今週の月曜日を以下、年月日別に表記
month = dt_now.month
day = (monday.day)
print(year,month,day) # 年月日をプリントして確認
base_url = “https://omny.fm/shows/program-21/%s-%s.mp3” #武田鉄矢のアクセスサイトで、日付を変数化
takeda = base_url%((month),(day)) # urlをtakedaと命名し、アクセスサイトに最新月曜日の日付を代入
print(takeda) # 最終目的のアクセスサイトをプリントして確認
import youtube_dl
ydl = youtube_dl.YoutubeDL({‘outtmpl’: ‘C:\\Users\satos\OneDrive\\audio\\radio\文化放送\武田鉄矢・今朝の三枚おろし\武田鉄矢%(title)s-%(upload_date)s.%(ext)s’,’format’:’best’}) # オプションでダウンロード先とファイル名(ダウンロード日追記)指定
# 自動化処理でなく、手動で手入力してダウンロードする時は以下の2行をアクティブにし、takedaをurlに変更する
# print(“URL ?”)
# url = input()
with ydl:
result = ydl.extract_info(
takeda, # 手動の際はこのtakedaをurlに変更
download=True# extract_info 構文を使い、変数化したurl部分を処理した正式urlを実行
)