05. radiko

radikoを聴くために'rtmpdump'を使用したシェルプログラムを利用していたが、今月(2020/12)になってから再生ができなくなった。
ネットで調べたら、ffplayを使ったpythonプログラムが有り、利用してみたところ問題無く再生出来たので、自分用に改造して利用させてもらう事にした。

●radiko pythonプログラムの改造
改造点:
 コマンドライン パラメータに以下を追加

import urllib.request import os, sys, argparse, re import base64 station_list = ('InterFM897: INT', 'TOKYOFM: FMT', 'J-WAVE: FMJ', 'bayfm78: BAYFM78', 'NACK5: NACK5', 'FMヨコハマ: YFM', 'NHK-FM: JPAK-FM', 'TBSラジオ: TBS', '文化放送: QRR', 'ニッポン放送: LFR', 'ラジオ日本: JORF', 'ラジオNIKKEI第一: RN1', 'ラジオNIKKEI第二: RN2', 'NHKラジオ第1: JOAK', 'NHKラジオ第2: JOAB') p = argparse.ArgumentParser(description='radiko再生プログラム') g = p.add_mutually_exclusive_group(required=True) # '-l/--list'か'stationID'のどちらか1つの指定が必須 g.add_argument("-l", "--list" , help="station ID一覧表示" , action="store_true") g.add_argument("stationID" , help="radiko station ID(ex.FMJ etc)" , nargs='?') # オプション引数で再生用ソフト(mpv, ffplay)を指定できる.指定が無い時はmplayerで再生される p.add_argument("-p", "--player" , help="Player soft(初期値:mplayer, mpv, ffplay)の指定" , default='mplayer', type=str) # 引数を解析する args = p.parse_args() station = args.stationID player = args.player if args.list: print('【station ID 一覧】') for stationid in station_list: # station IDの一覧表示 print(' '+stationid) sys.exit(0) # 表示したらプログラム終了  :  :  中略  :  : if player == 'ffplay': os.system( f"ffplay -nodisp -loglevel quiet -i '{m3u8}'") elif player == 'mpv': os.system( f"mpv --really-quiet --no-cache '{m3u8}'" ) else: os.system( f"mplayer -novideo -really-quiet -nocache '{m3u8}'" )  :  以下略  :

【参考】

  1. 現在の放送の再生に使えるツール (改造で録音も可)
  2. ji6czd/radiko.py

このページは"Vue.js"を利用してみました。
2020/12/09