05. radiko

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

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

python改造ポイント
  1. import urllib.request
  2. import os, sys, argparse, re
  3. import base64
  4.  
  5. station_list = ('InterFM897: INT', 'TOKYOFM: FMT', 'J-WAVE: FMJ', 'bayfm78: BAYFM78',
  6. 'NACK5: NACK5', 'FMヨコハマ: YFM', 'NHK-FM: JPAK-FM',
  7. 'TBSラジオ: TBS', '文化放送: QRR', 'ニッポン放送: LFR', 'ラジオ日本: JORF',
  8. 'ラジオNIKKEI第一: RN1', 'ラジオNIKKEI第二: RN2', 'NHKラジオ第1: JOAK', 'NHKラジオ第2: JOAB')
  9.  
  10. p = argparse.ArgumentParser(description='radiko再生プログラム')
  11. g = p.add_mutually_exclusive_group(required=True)
  12. # '-l/--list'か'stationID'のどちらか1つの指定が必須
  13. g.add_argument("-l", "--list" , help="station ID一覧表示" , action="store_true")
  14. g.add_argument("stationID" , help="radiko station ID(ex.FMJ etc)" , nargs='?')
  15. # オプション引数で再生用ソフト(mpv, ffplay)を指定できる.指定が無い時はmplayerで再生される
  16. p.add_argument("-p", "--player" , help="Player soft(初期値:mplayer, mpv, ffplay)の指定" , default='mplayer', type=str)
  17.  
  18. # 引数を解析する
  19. args = p.parse_args()
  20.  
  21. station = args.stationID
  22. player = args.player
  23.  
  24. if args.list:
  25. print('【station ID 一覧】')
  26. for stationid in station_list: # station IDの一覧表示
  27. print(' '+stationid)
  28. sys.exit(0) # 表示したらプログラム終了
  29.  
  30.  
  31.  中略
  32.  
  33.  
  34. if player == 'ffplay':
  35. os.system( f"ffplay -nodisp -loglevel quiet -i '{m3u8}'")
  36. elif player == 'mpv':
  37. os.system( f"mpv --really-quiet --no-cache '{m3u8}'" )
  38. else:
  39. os.system( f"mplayer -novideo -really-quiet -nocache '{m3u8}'" )
  40.  
  41.  以下略
  42.  
click ▼

【参考】

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

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