moOde audio + Podcast newsboat
ニュース系の番組(解説)やトーク番組などを聴くためにPodcast newsboatを導入してみました。Podcastというとスマホのアプリを利用することが多いと思いますがRaspberryPiからはウェブブラウザまたはそう多くは無いですがパッケージが利用出来ます。
スワップ領域を設定
RaspberryPiはzero2w(512M)で設定しています。本来のmoOdeaudio(moOdePlayer)以外にもサイマルラジオなどを起動しているため今回Podcastを走らせるとメモリを喰い潰してしまいます。デフォルトのmoOdeaudioはスワップ領域を設定していないためまずはスワップ領域を設定、スタートします。
/etc/dphys-swapfile デフォルトは100Mですが取り敢えず512M
CONF_SWAPSIZE=512
systemctl enable start
$ sudo systemctl enable dphys-swapfile && sudo systemctl start dphys-swapfile
newsboat
moOde audioから利用するためには確実にpulseaudioをコントロールする必要があるため利用できるアプリケーションは限られてきます。今回は超シンプルなCLIアプリケーションのnewsboatを選択してみました。マウスも利用できませんが基本の設定や操作は非常にわかりやすいです。
$ sudo update && sudo apt install newsboat
下記例は作業ディレクトリを設定、urlを登録して実行 オプション-r で新規エピソード取得
$ newsboat -r
作業ディレクトリの設定
$ newsboatを実行すると~/にディレクトリ~/.newsboatが作成されます。raspiosからインストールされるバージョンは2.21.0です。現時点の最新バージョンは2.30でウエブ情報では~/.config以下に設定している例もあります。今後変更になるかもしれません。
moode:~ $ newsboat newsboat2.21.0を起動中… 設定を読み込み中…完了しました。 キャッシュを読み込み中…完了しました。 /home/pi/.newsboat/urlsからURLを読み込み中…完了しました。 Error: no URLs configured. Please fill the file /home/pi/.newsboat/urls with RSS feed URLs or import an OPML file.
~/.newsboat/urlsにRSS feed URLsを書き込めと言ってます。
RSS feed URLの取得
ポッドキャストランキング https://podcastranking.jp/
聴きたいコンテンツがあったらRSSで番組を購読するをクリックー>URLをコピー
~/.newsboat/urlsを新規作成、1行ずつ貼り付けていきます。
NHK TOKYOFMなどはxml形式になっています。
NHK ポッドキャスト https://www.nhk.or.jp/podcasts/
NHKのサイトからは’Podcastを登録’右クリック、リンクのアドレスをコピー
同様に~/.newsboat/urlsに貼り付け。
~/.newsboat/config
基本の設定は~/.newsboat/urlsを作成するだけですがbind-keyの追加とcolor設定を少し変更してみます。
サンプルは/usr/share/doc/newsboat以下にあります。
~/.newsboat/config
browser elinks %u bind-key h quit bind-key j next bind-key k prev bind-key l enqueue bind-key SPACE open bind-key u reload-all color background default default color listnormal white black color listnormal_unread default default color listfocus white magenta bold color listfocus_unread white magenta bold color info default black bold color article default default bold
browserはテキストブラウザのelinksを指定。chromiumは不可、w3mもサイトによってはOS自体がハングアップしてしまいます。ブラウザで何かを閲覧するというよりもハングアップしないブラウザをインストール、適用します。
$ sudo apt install elinks
bind-keyはvi likeな設定を追加しています。
設定したbind-keyは下段のメニューバーにまたヘルプにも反映されます。
ディフォルトのキーもそのまま使えます。
使いたいキーやアクションは各モードのヘルプで確認
カラーはよりシンプルに。
選択したエピソードはこのモードからe(エンキュー)すると~/.newsboat/queueに記録されます。
s(保存)は~/にテキスト形式で保存。
直接プレーヤーを起動することは無いようなのでキュー(queue)を利用することにします。
Podcast mpv Player
Podcast mpv Playerはqueueに記録されたurlをプレイリストにして再生します。
起動時はキューを空にします。
複数のエピソードを連続して再生したい場合はキューを空にしてエンキュー。最後にエンキューしたエピソードのみ再生したい時はQueue_Sボタンでプレイ。
pulseaudio
Podcast mpv Playerはpulseaudioの起動をチェックして再生します。ロゴ画像は再生に特に決まったパターンが無いようなのでxterm(geometry) + mpvでPodcast再生を判断しています。
/vae/www/html/pulse.php (一部抜粋)
// radio Img logo $station = shell_exec("ps ax | grep radiko.jp | grep -v grep | awk '{print $(NF-1)}' | awk 'NR==1' | cut -c 26-"); if ($station == NULL) { $station = shell_exec("ps ax | grep -v grep | grep mms:// | awk -F '/' '{print $(NF)}'"); } if ($station == NULL) { $station = shell_exec("ps ax | grep -v grep | grep -m 1 cdda"); if ($station == TRUE) { $station = "cdda"; } } if ($station == NULL) { $station = shell_exec("ps ax | grep -v grep | grep 'xterm -g 81x17-0+198 -e mpv --no-video'"); if ($station == TRUE) { $station = "podcast"; } } if ($pulse == TRUE) { if ($station == NULL) { sleep(0.1); $station = ('pulse'); }
起動
# Podcast newsboat def podcast(): podcast = ("ps ax | grep -v grep | grep simul_podcast.py") podcast = (subprocess.Popen(podcast, stdout=subprocess.PIPE, shell=True).communicate()[0]).decode('utf-8') podcast = podcast.strip() if not podcast: subprocess.run("~/bin/simul_podcast.py &", shell=True) time.sleep(1) subprocess.run("xterm -g 100x40+490+145 -e newsboat -r &", shell=True) icon413 = PhotoImage('~/.icons/radio/podcast.png') button413 = ttk.Button(frame1,image=icon413,command=podcast) button413.grid(row=1,column=4)
スワップ領域は現在240Mほど使われています。再起動のタイミングやもう少し増やしたほうがいいのかは様子を見ようと思います。
newsboatは基本RSSを登録、エンキューするだけの簡単操作でテレビのない当サイトにおいてPodcastは実に強力なツールと言えます。内容はまだまだ精査する必要がありますが音声系についてはほぼ全てmoOde audioに集中することが出来ました。