Raspberry PiでNHKラジオを自動録音する

これはとっくにここにポストしていた気がするけど、実はまだだったのですね。
ここに来るまでけっこう苦労したので載せておきます。

基本的にはriocamposさんのこのページを参考にしました。違いは http://www.nhk.or.jp/radio/config/config_web.xml を毎回参照して、akamaihd.net のURLが変更されていても対応することです。

ではRubyスクリプト。読めばわかるので説明は略。

#!/usr/bin/env ruby
# Usage: record_nhk.rb [options] area station duration outdir

require ‘optparse’
require “rexml/document”
require “open-uri”

URL = “http://www.nhk.or.jp/radio/config/config_web.xml”

# MYAREA is one of the followings
# sapporo  
# sendai  
# tokyo  
# nagoya  
# osaka  
# hiroshima  
# matsuyama  
# fukuoka  

params = ARGV.getopts(nil, ‘title:’, ‘artist:’, ‘album:’)

myarea = ARGV[0]
station = ARGV[1]
duration = ARGV[2]
outdir = ARGV[3]

xml = open(URL).read
doc = REXML::Document.new(xml)

radiru_config =  nil
doc.each do |e|
 if e.kind_of?(REXML::Element) and e.name == “radiru_config”
   radiru_config = e
   break
 end
end

stream_url= radiru_config.elements[‘stream_url’]

area = nil
stream_url.each do |data|
 if data.kind_of?(REXML::Element)
   if data.elements[‘area’].text == myarea
     area = data
     break
   end
 end
end

case station
when ‘r1’
 surl = area.elements[‘r1hls’].text
when ‘r2’
 surl = area.elements[‘r2hls’].text
when ‘fm’
 surl = area.elements[‘fmhls’].text
else
 surl = area.elements[‘fmhls’].text
end

now = Time.now.to_s.sub(/(\d\d\d\d-\d\d-\d\d)\s+(\d\d:\d\d):\d\d.*$/){ $1 + ‘_’ + $2.sub(/
:/, ‘-‘) }

meta = “”

if params[‘title’]
 meta += ” -metadata title=\”” + params[‘title’] + “\””
end

if params[‘artist’]
 meta += ” -metadata artist=\”” + params[‘artist’] + “\””
end

if params[‘album’]
 meta += ” -metadata album=\”” + params[‘album’] + “\””
end

ffmpeg_cmd = sprintf(“ffmpeg -t %s -i %s %s -write_xing 0 %s/%s.mp3”, duration, surl, meta
, outdir, now)

system(ffmpeg_cmd)

使いかたはcronでこんな感じです。趣味がわかってしまう…
sleep 30は遅延を考慮してですが、もっと多いほうがいいかも。

05 16 * * 0     sleep 30;/home/pi/NHK/record_nhk.rb –artist “DJ日本史” –album “トーク” tokyo r1 00:50:00 /disk/Music/Radio/NHK-R1/DJ  
30 19 * * 1-5   sleep 30;/home/pi/NHK/record_nhk.rb –artist “ベスト・オブ・クラシック” –album “クラシック” tokyo fm 01:40:00 /disk/Music/Radio/NHK-FM/Classic
15 21 * * 1-5   sleep 30;/home/pi/NHK/record_nhk.rb –artist “青春アドベンチャー” –album “ラジオドラマ” tokyo fm 00:15:00 /disk/Music/Radio/NHK-FM/Adventure
00 22 * * 6     sleep 30;/home/pi/NHK/record_nhk.rb –artist “FMシアター” –album “ラジオドラマ” tokyo fm 01:00:00 /disk/Music/Radio/NHK-FM/Theatre
05 10 * * 6     sleep 30;/home/pi/NHK/record_nhk.rb –artist “真打ち競演” –album “落語” tokyo r1 00:50:00 /disk/Music/Radio/NHK-R1/Sin-uti
20 19 * * 0     sleep 30;/home/pi/NHK/record_nhk.rb –artist “新日曜名作座” –album “ラジオドラマ” tokyo r1 00:30:00 /disk/Music/Radio/NHK-R1/Meisaku
30 10 * * 1-3   sleep 30;/home/pi/NHK/record_nhk.rb –artist “遠山顕の英会話楽習” –album “英語” tokyo r2 00:15:00 /disk/Music/Radio/NHK-R2/Rakushuu

Chromium-browserがパスワードを覚えてくれない

タイトルのとおりの症状です。Ubuntu 20.04。
「パスワードを保存できるようにする」も「自動ログイン」も有効にしていて「保存するか?」にYesと答えても、次回のログインでパスワードをひっぱってきてくれない。

ここを参考に ~/.config/chromium/Default/Login\ Data* を消してブラウザをリスタートしたら直りました。