EmacsからNHKラジオを聴こう!
はじめに
この記事は Emacs Advent Calendar 2025 9日目の記事です。8日目は @nakazyeさん の 「leaf.elを活用し日本語で構造化したinit.elを作る」 でした。10日目は @takeokunnさん の 「emacs-overlayが便利 」の予定です。
さて、みなさんラジオ放送を聴いていますか?筆者はラジオを持っていないので基本的にradikoでのみラジオ放送を聴いていますが、実はNHKのラジオ放送はらじる★らじるからも聴くことができます。らじる★らじるでは過去の放送もある程度は聴くことができますが、放送中の番組をリアルタイムで聴くこともできます。また、EmacsではEMMSを使うことで音楽だけではなくラジオストリーミングを聴くこともできます。ということで、EmacsからEMMSを使ってNHKラジオを聴こう!というのがこの記事の概要です。
ちなみに何とかしてHLSのURLを手に入れるとradikoの放送も同じようにEMMSから聴くことができるかもしれないですが、らじる★らじると違って公式がそれらしいURLを公開していないのでこの記事では深追いしません。
EMMSの設定
まずEMMSはこういう感じで設定します。設定にはleaf.elを使っています。
(leaf emms
:ensure t
:require t
:custom
(emms-player-list . '(emms-player-mpv))
:config
(emms-all)
(defun my-emms-track-simple-description (track)
(message (format "start playing %s" track))
(if (eq (emms-track-type track)
'streamlist)
(format "%s"
(car (emms-track-get track 'metadata)))
(emms-info-track-description track)))
;; emms-allがemms-track-description-functionを設定するので、ここで上書きする
(setq emms-track-description-function 'my-emms-track-simple-description))
以下でEMMSがバックエンドで使うプレイヤーとしてmpvを指定している点がちょっと大事だったりします。(恐らく) vlcなどオーディオストリームを直接再生できる他のプレイヤーを指定してもちゃんと動作すると思いますが、mpg321などのプレイヤーを指定すると再生に失敗すると思います(未確認)。
(emms-player-list . '(emms-player-mpv))
また、以下の設定をすることで再生中のストリームの名前を表示できるようになります。デフォルトの設定だとmp3など音楽ファイルのメタデータは読めるみたいですが、オーディオストリームの設定ファイル中のメタデータは読まないです。
(defun my-emms-track-simple-description (track)
(message (format "start playing %s" track))
(if (eq (emms-track-type track)
'streamlist)
(format "%s"
(car (emms-track-get track 'metadata)))
(emms-info-track-description track)))
;; emms-allがemms-track-description-functionを設定するので、ここで上書きする
(setq emms-track-description-function 'my-emms-track-simple-description)
NHKラジオの登録と聴きかた
さて、ここからNHKラジオをEMMSのストリームの一覧に追加します。
まず M-x emms-streams-install でデフォルトの ~/.emacs.d/emms/streams.emms を生成します。このファイルにはストリーミング用のプレイリストがS式で書いてあります。直接NHKラジオ用の ~/.emacs.d/emms/streams.emms を生成してもちゃんと動作すると思いますが、どうせなら他のインターネットラジオの設定もあると嬉しいと思います。
NHKラジオのストリーミングのための情報は https://www.nhk.or.jp/radio/config/config_web.xml に記載があるので、これを元に拙作の make-nhk-stream.emms で streams.emms を作っていきます。どうやらNHKラジオのストリーミング用のURLはたまに変更されるようなので、ストリーミングできなくなったら際は再度生成すると良いかもしれないです。make-nhk-stream.emmsはXSLTスタイルシートなので、 xsltproc や saxon などの適切な処理系が必要になります。具体的には以下の様に streams.emms を生成して、 ~/.emacs.d/emms にコピーするか適切に既存の ~/.emacs.d/emms/streams.emms とマージします。
wget https://www.nhk.or.jp/radio/config/config_web.xml
xsltproc nhk-radio.xsl config_web.xml > streams.emms
最後に M-x emms-streams で Emms Streams のバッファを作って、適当な位置で P キーを押すと再生できます。

書き終わってから気がついたこと
EMMSはm3u形式やpls形式のプレイリストを読み込めるので、わざわざS式で書いてある streams.emms を編集しなくても https://www.nhk.or.jp/radio/config/config_web.xml からm3uファイルを作って、 emms-play-m3u-playlist でm3uファイルを読み込むのでも今回やりたいことはできますね…