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}'" )
- :
- 以下略
- :
【参考】
このページは"Vue.js"を利用してみました。