<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Radiko on namaraii.com</title><link>https://namaraii.com/tags/radiko/</link><description>Recent content in Radiko on namaraii.com</description><generator>Hugo -- gohugo.io</generator><language>ja</language><managingEditor>hitoshi@namaraii.com (竹内 仁 (TAKEUCHI Hitoshi))</managingEditor><webMaster>hitoshi@namaraii.com (竹内 仁 (TAKEUCHI Hitoshi))</webMaster><copyright>© 2026 TAKEUCHI Hitoshi, All Rights Reserved.</copyright><lastBuildDate>Mon, 28 Jul 2025 09:19:37 +0900</lastBuildDate><atom:link href="https://namaraii.com/tags/radiko/index.xml" rel="self" type="application/rss+xml"/><item><title>radiko APIを使って都道府県ごとのラジオ局一覧を出力する</title><link>https://namaraii.com/posts/radiko-station-list/</link><pubDate>Mon, 28 Jul 2025 09:19:37 +0900</pubDate><author>hitoshi@namaraii.com (竹内 仁 (TAKEUCHI Hitoshi))</author><guid>https://namaraii.com/posts/radiko-station-list/</guid><description>&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ruby" data-lang="ruby"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;net/http&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;uri&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;rexml/document&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;prefecture_names&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;1&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;北海道&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;青森県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;3&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;岩手県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;4&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;宮城県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;5&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;秋田県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;6&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;山形県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;7&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;福島県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;8&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;茨城県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;9&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;栃木県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;10&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;群馬県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;11&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;埼玉県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;12&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;千葉県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;13&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;東京都&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;14&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;神奈川県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;15&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;新潟県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;16&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;富山県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;17&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;石川県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;18&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;福井県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;19&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;山梨県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;20&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;長野県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;21&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;岐阜県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;22&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;静岡県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;23&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;愛知県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;24&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;三重県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;25&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;滋賀県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;26&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;京都府&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;27&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;大阪府&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;28&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;兵庫県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;29&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;奈良県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;30&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;和歌山県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;31&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;鳥取県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;32&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;島根県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;33&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;岡山県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;34&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;広島県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;35&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;山口県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;36&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;徳島県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;37&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;香川県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;38&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;愛媛県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;39&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;高知県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;40&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;福岡県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;41&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;佐賀県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;42&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;長崎県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;43&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;熊本県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;44&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;大分県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;45&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;宮崎県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;46&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;鹿児島県&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;47&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;沖縄県&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;prefectures&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="mi"&gt;47&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="ss"&gt;:to_s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;prefectures&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;pref_code&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://radiko.jp/v2/station/list/JP&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;pref_code&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.xml&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;uri&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;URI&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;begin&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Net&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;HTTP&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_response&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;uri&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_a?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="no"&gt;Net&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;HTTPSuccess&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;document&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;REXML&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Document&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;body&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;## &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;prefecture_names&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;pref_code&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;(&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;pref_code&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;document&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;elements&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;each&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;stations/station&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;station&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;station_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;station&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;elements&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;name&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;].&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;station_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;station&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;elements&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;id&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;].&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;- &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;station_name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;(&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;station_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Failed to retrieve data for prefecture code &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;pref_code&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;rescue&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Error: &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; for prefecture code &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;pref_code&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 class="relative group"&gt;北海道(1)
 &lt;div id="北海道1" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%8c%97%e6%b5%b7%e9%81%931" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ＨＢＣラジオ(HBC)&lt;/li&gt;
&lt;li&gt;ＳＴＶラジオ(STV)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;AIR-G&amp;rsquo;（FM北海道）(AIR-G)&lt;/li&gt;
&lt;li&gt;FM NORTH WAVE(NORTHWAVE)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（札幌）(JOIK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;青森県(2)
 &lt;div id="青森県2" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%9d%92%e6%a3%ae%e7%9c%8c2" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ＲＡＢ青森放送(RAB)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;エフエム青森(AFB)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（仙台）(JOHK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;岩手県(3)
 &lt;div id="岩手県3" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%b2%a9%e6%89%8b%e7%9c%8c3" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;IBCラジオ(IBC)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;エフエム岩手(FMI)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（仙台）(JOHK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;宮城県(4)
 &lt;div id="宮城県4" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%ae%ae%e5%9f%8e%e7%9c%8c4" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;TBCラジオ(TBC)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;Date fm エフエム仙台(DATEFM)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（仙台）(JOHK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;秋田県(5)
 &lt;div id="秋田県5" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%a7%8b%e7%94%b0%e7%9c%8c5" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ABSラジオ(ABS)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;エフエム秋田(AFM)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（仙台）(JOHK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;山形県(6)
 &lt;div id="山形県6" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%b1%b1%e5%bd%a2%e7%9c%8c6" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;YBC山形放送(YBC)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;Rhythm Station　エフエム山形(RFM)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（仙台）(JOHK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;福島県(7)
 &lt;div id="福島県7" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%a6%8f%e5%b3%b6%e7%9c%8c7" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;RFCラジオ福島(RFC)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;ふくしまFM(FMF)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（仙台）(JOHK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;茨城県(8)
 &lt;div id="茨城県8" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%8c%a8%e5%9f%8e%e7%9c%8c8" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;TBSラジオ(TBS)&lt;/li&gt;
&lt;li&gt;文化放送(QRR)&lt;/li&gt;
&lt;li&gt;ニッポン放送(LFR)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;interfm(INT)&lt;/li&gt;
&lt;li&gt;TOKYO FM(FMT)&lt;/li&gt;
&lt;li&gt;J-WAVE(FMJ)&lt;/li&gt;
&lt;li&gt;LuckyFM 茨城放送(IBS)&lt;/li&gt;
&lt;li&gt;ラジオ日本(JORF)&lt;/li&gt;
&lt;li&gt;BAYFM78(BAYFM78)&lt;/li&gt;
&lt;li&gt;NACK5(NACK5)&lt;/li&gt;
&lt;li&gt;ＦＭヨコハマ(YFM)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（東京）(JOAK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;栃木県(9)
 &lt;div id="栃木県9" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%a0%83%e6%9c%a8%e7%9c%8c9" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;TBSラジオ(TBS)&lt;/li&gt;
&lt;li&gt;文化放送(QRR)&lt;/li&gt;
&lt;li&gt;ニッポン放送(LFR)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;interfm(INT)&lt;/li&gt;
&lt;li&gt;TOKYO FM(FMT)&lt;/li&gt;
&lt;li&gt;J-WAVE(FMJ)&lt;/li&gt;
&lt;li&gt;CRT栃木放送(CRT)&lt;/li&gt;
&lt;li&gt;RADIO BERRY(RADIOBERRY)&lt;/li&gt;
&lt;li&gt;ラジオ日本(JORF)&lt;/li&gt;
&lt;li&gt;BAYFM78(BAYFM78)&lt;/li&gt;
&lt;li&gt;NACK5(NACK5)&lt;/li&gt;
&lt;li&gt;ＦＭヨコハマ(YFM)&lt;/li&gt;
&lt;li&gt;LuckyFM 茨城放送(IBS)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（東京）(JOAK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;群馬県(10)
 &lt;div id="群馬県10" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%be%a4%e9%a6%ac%e7%9c%8c10" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;TBSラジオ(TBS)&lt;/li&gt;
&lt;li&gt;文化放送(QRR)&lt;/li&gt;
&lt;li&gt;ニッポン放送(LFR)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;interfm(INT)&lt;/li&gt;
&lt;li&gt;TOKYO FM(FMT)&lt;/li&gt;
&lt;li&gt;J-WAVE(FMJ)&lt;/li&gt;
&lt;li&gt;FM GUNMA(FMGUNMA)&lt;/li&gt;
&lt;li&gt;ラジオ日本(JORF)&lt;/li&gt;
&lt;li&gt;BAYFM78(BAYFM78)&lt;/li&gt;
&lt;li&gt;NACK5(NACK5)&lt;/li&gt;
&lt;li&gt;ＦＭヨコハマ(YFM)&lt;/li&gt;
&lt;li&gt;LuckyFM 茨城放送(IBS)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（東京）(JOAK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;埼玉県(11)
 &lt;div id="埼玉県11" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%9f%bc%e7%8e%89%e7%9c%8c11" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;TBSラジオ(TBS)&lt;/li&gt;
&lt;li&gt;文化放送(QRR)&lt;/li&gt;
&lt;li&gt;ニッポン放送(LFR)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;interfm(INT)&lt;/li&gt;
&lt;li&gt;TOKYO FM(FMT)&lt;/li&gt;
&lt;li&gt;J-WAVE(FMJ)&lt;/li&gt;
&lt;li&gt;ラジオ日本(JORF)&lt;/li&gt;
&lt;li&gt;BAYFM78(BAYFM78)&lt;/li&gt;
&lt;li&gt;NACK5(NACK5)&lt;/li&gt;
&lt;li&gt;ＦＭヨコハマ(YFM)&lt;/li&gt;
&lt;li&gt;LuckyFM 茨城放送(IBS)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（東京）(JOAK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;千葉県(12)
 &lt;div id="千葉県12" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%8d%83%e8%91%89%e7%9c%8c12" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;TBSラジオ(TBS)&lt;/li&gt;
&lt;li&gt;文化放送(QRR)&lt;/li&gt;
&lt;li&gt;ニッポン放送(LFR)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;interfm(INT)&lt;/li&gt;
&lt;li&gt;TOKYO FM(FMT)&lt;/li&gt;
&lt;li&gt;J-WAVE(FMJ)&lt;/li&gt;
&lt;li&gt;ラジオ日本(JORF)&lt;/li&gt;
&lt;li&gt;BAYFM78(BAYFM78)&lt;/li&gt;
&lt;li&gt;NACK5(NACK5)&lt;/li&gt;
&lt;li&gt;ＦＭヨコハマ(YFM)&lt;/li&gt;
&lt;li&gt;LuckyFM 茨城放送(IBS)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（東京）(JOAK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;東京都(13)
 &lt;div id="東京都13" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%9d%b1%e4%ba%ac%e9%83%bd13" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;TBSラジオ(TBS)&lt;/li&gt;
&lt;li&gt;文化放送(QRR)&lt;/li&gt;
&lt;li&gt;ニッポン放送(LFR)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;interfm(INT)&lt;/li&gt;
&lt;li&gt;TOKYO FM(FMT)&lt;/li&gt;
&lt;li&gt;J-WAVE(FMJ)&lt;/li&gt;
&lt;li&gt;ラジオ日本(JORF)&lt;/li&gt;
&lt;li&gt;BAYFM78(BAYFM78)&lt;/li&gt;
&lt;li&gt;NACK5(NACK5)&lt;/li&gt;
&lt;li&gt;ＦＭヨコハマ(YFM)&lt;/li&gt;
&lt;li&gt;LuckyFM 茨城放送(IBS)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（東京）(JOAK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;神奈川県(14)
 &lt;div id="神奈川県14" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%a5%9e%e5%a5%88%e5%b7%9d%e7%9c%8c14" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;TBSラジオ(TBS)&lt;/li&gt;
&lt;li&gt;文化放送(QRR)&lt;/li&gt;
&lt;li&gt;ニッポン放送(LFR)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;interfm(INT)&lt;/li&gt;
&lt;li&gt;TOKYO FM(FMT)&lt;/li&gt;
&lt;li&gt;J-WAVE(FMJ)&lt;/li&gt;
&lt;li&gt;ラジオ日本(JORF)&lt;/li&gt;
&lt;li&gt;BAYFM78(BAYFM78)&lt;/li&gt;
&lt;li&gt;NACK5(NACK5)&lt;/li&gt;
&lt;li&gt;ＦＭヨコハマ(YFM)&lt;/li&gt;
&lt;li&gt;LuckyFM 茨城放送(IBS)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（東京）(JOAK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;新潟県(15)
 &lt;div id="新潟県15" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%96%b0%e6%bd%9f%e7%9c%8c15" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ＢＳＮラジオ(BSN)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;FM NIIGATA(FMNIIGATA)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（東京）(JOAK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;富山県(16)
 &lt;div id="富山県16" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%af%8c%e5%b1%b1%e7%9c%8c16" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ＫＮＢラジオ(KNB)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;ＦＭとやま(FMTOYAMA)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（名古屋）(JOCK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;石川県(17)
 &lt;div id="石川県17" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%9f%b3%e5%b7%9d%e7%9c%8c17" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;MROラジオ(MRO)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;エフエム石川(HELLOFIVE)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（名古屋）(JOCK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;福井県(18)
 &lt;div id="福井県18" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%a6%8f%e4%ba%95%e7%9c%8c18" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;FBCラジオ(FBC)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;FM福井(FMFUKUI)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（名古屋）(JOCK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;山梨県(19)
 &lt;div id="山梨県19" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%b1%b1%e6%a2%a8%e7%9c%8c19" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ＹＢＳラジオ(YBS)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;FM FUJI(FM-FUJI)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（東京）(JOAK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;長野県(20)
 &lt;div id="長野県20" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%95%b7%e9%87%8e%e7%9c%8c20" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;SBCラジオ(SBC)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;ＦＭ長野(FMN)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（東京）(JOAK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;岐阜県(21)
 &lt;div id="岐阜県21" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%b2%90%e9%98%9c%e7%9c%8c21" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;CBCラジオ(CBC)&lt;/li&gt;
&lt;li&gt;TOKAI RADIO(TOKAIRADIO)&lt;/li&gt;
&lt;li&gt;ぎふチャン(GBS)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;ZIP-FM(ZIP-FM)&lt;/li&gt;
&lt;li&gt;ＦＭ ＧＩＦＵ(FMGIFU)&lt;/li&gt;
&lt;li&gt;FM AICHI(FMAICHI)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（名古屋）(JOCK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;静岡県(22)
 &lt;div id="静岡県22" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%9d%99%e5%b2%a1%e7%9c%8c22" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;SBSラジオ(SBS)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;K-MIX(K-MIX)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（名古屋）(JOCK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;愛知県(23)
 &lt;div id="愛知県23" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%84%9b%e7%9f%a5%e7%9c%8c23" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;CBCラジオ(CBC)&lt;/li&gt;
&lt;li&gt;TOKAI RADIO(TOKAIRADIO)&lt;/li&gt;
&lt;li&gt;ぎふチャン(GBS)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;ZIP-FM(ZIP-FM)&lt;/li&gt;
&lt;li&gt;FM AICHI(FMAICHI)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（名古屋）(JOCK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;三重県(24)
 &lt;div id="三重県24" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%b8%89%e9%87%8d%e7%9c%8c24" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;CBCラジオ(CBC)&lt;/li&gt;
&lt;li&gt;TOKAI RADIO(TOKAIRADIO)&lt;/li&gt;
&lt;li&gt;ぎふチャン(GBS)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;ZIP-FM(ZIP-FM)&lt;/li&gt;
&lt;li&gt;レディオキューブ ＦＭ三重(FMMIE)&lt;/li&gt;
&lt;li&gt;FM AICHI(FMAICHI)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（名古屋）(JOCK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;滋賀県(25)
 &lt;div id="滋賀県25" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%bb%8b%e8%b3%80%e7%9c%8c25" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ABCラジオ(ABC)&lt;/li&gt;
&lt;li&gt;MBSラジオ(MBS)&lt;/li&gt;
&lt;li&gt;OBCラジオ大阪(OBC)&lt;/li&gt;
&lt;li&gt;FM COCOLO(CCL)&lt;/li&gt;
&lt;li&gt;FM802(802)&lt;/li&gt;
&lt;li&gt;FM大阪(FMO)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;KBS京都ラジオ(KBS)&lt;/li&gt;
&lt;li&gt;Kiss FM KOBE(KISSFMKOBE)&lt;/li&gt;
&lt;li&gt;e-radio FM滋賀(E-RADIO)&lt;/li&gt;
&lt;li&gt;ラジオ関西(CRK)&lt;/li&gt;
&lt;li&gt;α-STATION FM KYOTO(ALPHA-STATION)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（大阪）(JOBK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;京都府(26)
 &lt;div id="京都府26" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%ba%ac%e9%83%bd%e5%ba%9c26" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ABCラジオ(ABC)&lt;/li&gt;
&lt;li&gt;MBSラジオ(MBS)&lt;/li&gt;
&lt;li&gt;OBCラジオ大阪(OBC)&lt;/li&gt;
&lt;li&gt;FM COCOLO(CCL)&lt;/li&gt;
&lt;li&gt;FM802(802)&lt;/li&gt;
&lt;li&gt;FM大阪(FMO)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;KBS京都ラジオ(KBS)&lt;/li&gt;
&lt;li&gt;Kiss FM KOBE(KISSFMKOBE)&lt;/li&gt;
&lt;li&gt;α-STATION FM KYOTO(ALPHA-STATION)&lt;/li&gt;
&lt;li&gt;ラジオ関西(CRK)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（大阪）(JOBK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;大阪府(27)
 &lt;div id="大阪府27" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%a4%a7%e9%98%aa%e5%ba%9c27" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ABCラジオ(ABC)&lt;/li&gt;
&lt;li&gt;MBSラジオ(MBS)&lt;/li&gt;
&lt;li&gt;OBCラジオ大阪(OBC)&lt;/li&gt;
&lt;li&gt;FM COCOLO(CCL)&lt;/li&gt;
&lt;li&gt;FM802(802)&lt;/li&gt;
&lt;li&gt;FM大阪(FMO)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;Kiss FM KOBE(KISSFMKOBE)&lt;/li&gt;
&lt;li&gt;ラジオ関西(CRK)&lt;/li&gt;
&lt;li&gt;KBS京都ラジオ(KBS)&lt;/li&gt;
&lt;li&gt;α-STATION FM KYOTO(ALPHA-STATION)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（大阪）(JOBK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;兵庫県(28)
 &lt;div id="兵庫県28" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%85%b5%e5%ba%ab%e7%9c%8c28" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ABCラジオ(ABC)&lt;/li&gt;
&lt;li&gt;MBSラジオ(MBS)&lt;/li&gt;
&lt;li&gt;OBCラジオ大阪(OBC)&lt;/li&gt;
&lt;li&gt;FM COCOLO(CCL)&lt;/li&gt;
&lt;li&gt;FM802(802)&lt;/li&gt;
&lt;li&gt;FM大阪(FMO)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;ラジオ関西(CRK)&lt;/li&gt;
&lt;li&gt;Kiss FM KOBE(KISSFMKOBE)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（大阪）(JOBK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;奈良県(29)
 &lt;div id="奈良県29" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%a5%88%e8%89%af%e7%9c%8c29" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ABCラジオ(ABC)&lt;/li&gt;
&lt;li&gt;MBSラジオ(MBS)&lt;/li&gt;
&lt;li&gt;OBCラジオ大阪(OBC)&lt;/li&gt;
&lt;li&gt;FM COCOLO(CCL)&lt;/li&gt;
&lt;li&gt;FM802(802)&lt;/li&gt;
&lt;li&gt;FM大阪(FMO)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;Kiss FM KOBE(KISSFMKOBE)&lt;/li&gt;
&lt;li&gt;ラジオ関西(CRK)&lt;/li&gt;
&lt;li&gt;α-STATION FM KYOTO(ALPHA-STATION)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（大阪）(JOBK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;和歌山県(30)
 &lt;div id="和歌山県30" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%92%8c%e6%ad%8c%e5%b1%b1%e7%9c%8c30" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ABCラジオ(ABC)&lt;/li&gt;
&lt;li&gt;MBSラジオ(MBS)&lt;/li&gt;
&lt;li&gt;OBCラジオ大阪(OBC)&lt;/li&gt;
&lt;li&gt;FM COCOLO(CCL)&lt;/li&gt;
&lt;li&gt;FM802(802)&lt;/li&gt;
&lt;li&gt;FM大阪(FMO)&lt;/li&gt;
&lt;li&gt;wbs和歌山放送(WBS)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;Kiss FM KOBE(KISSFMKOBE)&lt;/li&gt;
&lt;li&gt;ラジオ関西(CRK)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（大阪）(JOBK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;鳥取県(31)
 &lt;div id="鳥取県31" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%b3%a5%e5%8f%96%e7%9c%8c31" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;BSSラジオ(BSS)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;エフエム山陰(FM-SANIN)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（広島）(JOFK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;島根県(32)
 &lt;div id="島根県32" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%b3%b6%e6%a0%b9%e7%9c%8c32" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;BSSラジオ(BSS)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;エフエム山陰(FM-SANIN)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（広島）(JOFK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;岡山県(33)
 &lt;div id="岡山県33" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%b2%a1%e5%b1%b1%e7%9c%8c33" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ＲＳＫラジオ(RSK)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;ＦＭ岡山(FM-OKAYAMA)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（広島）(JOFK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;広島県(34)
 &lt;div id="広島県34" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%ba%83%e5%b3%b6%e7%9c%8c34" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;RCCラジオ(RCC)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;広島FM(HFM)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（広島）(JOFK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;山口県(35)
 &lt;div id="山口県35" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%b1%b1%e5%8f%a3%e7%9c%8c35" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ＫＲＹ山口放送(KRY)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;エフエム山口(FMY)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（広島）(JOFK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;徳島県(36)
 &lt;div id="徳島県36" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%be%b3%e5%b3%b6%e7%9c%8c36" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ＪＲＴ四国放送(JRT)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;FM徳島(FM807)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（松山）(JOZK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;香川県(37)
 &lt;div id="香川県37" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%a6%99%e5%b7%9d%e7%9c%8c37" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;RNC西日本放送(RNC)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;エフエム香川(FMKAGAWA)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（松山）(JOZK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;愛媛県(38)
 &lt;div id="愛媛県38" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%84%9b%e5%aa%9b%e7%9c%8c38" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;RNB南海放送(RNB)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;FM愛媛(JOEU-FM)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（松山）(JOZK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;高知県(39)
 &lt;div id="高知県39" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%ab%98%e7%9f%a5%e7%9c%8c39" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;RKC高知放送(RKC)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;エフエム高知(HI-SIX)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（松山）(JOZK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;福岡県(40)
 &lt;div id="福岡県40" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%a6%8f%e5%b2%a1%e7%9c%8c40" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;RKBラジオ(RKB)&lt;/li&gt;
&lt;li&gt;KBCラジオ(KBC)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;LOVE FM(LOVEFM)&lt;/li&gt;
&lt;li&gt;CROSS FM(CROSSFM)&lt;/li&gt;
&lt;li&gt;FM FUKUOKA(FMFUKUOKA)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（福岡）(JOLK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;佐賀県(41)
 &lt;div id="佐賀県41" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%bd%90%e8%b3%80%e7%9c%8c41" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;エフエム佐賀(FMS)&lt;/li&gt;
&lt;li&gt;NBCラジオ(NBC)&lt;/li&gt;
&lt;li&gt;RKBラジオ(RKB)&lt;/li&gt;
&lt;li&gt;KBCラジオ(KBC)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（福岡）(JOLK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;長崎県(42)
 &lt;div id="長崎県42" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%95%b7%e5%b4%8e%e7%9c%8c42" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;NBCラジオ(NBC)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;FM長崎(FMNAGASAKI)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（福岡）(JOLK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;熊本県(43)
 &lt;div id="熊本県43" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%86%8a%e6%9c%ac%e7%9c%8c43" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;RKKラジオ(RKK)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;FMKエフエム熊本(FMK)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（福岡）(JOLK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;大分県(44)
 &lt;div id="大分県44" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%a4%a7%e5%88%86%e7%9c%8c44" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;OBSラジオ(OBS)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;エフエム大分(FM_OITA)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（福岡）(JOLK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;宮崎県(45)
 &lt;div id="宮崎県45" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%ae%ae%e5%b4%8e%e7%9c%8c45" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;宮崎放送(MRT)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;エフエム宮崎(JOYFM)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（福岡）(JOLK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;鹿児島県(46)
 &lt;div id="鹿児島県46" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%b9%bf%e5%85%90%e5%b3%b6%e7%9c%8c46" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ＭＢＣラジオ(MBC)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;μＦＭ(MYUFM)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（福岡）(JOLK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;沖縄県(47)
 &lt;div id="沖縄県47" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%b2%96%e7%b8%84%e7%9c%8c47" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;RBCiラジオ(RBC)&lt;/li&gt;
&lt;li&gt;ラジオ沖縄(ROK)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第1(RN1)&lt;/li&gt;
&lt;li&gt;ラジオNIKKEI第2(RN2)&lt;/li&gt;
&lt;li&gt;FM沖縄(FM_OKINAWA)&lt;/li&gt;
&lt;li&gt;オーディオ高校野球(ABCR-KOSHIEN)&lt;/li&gt;
&lt;li&gt;NHKラジオ第1（福岡）(JOLK)&lt;/li&gt;
&lt;li&gt;NHK-FM（東京）(JOAK-FM)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>radikoを録音してPoscastプレイヤーで再生する</title><link>https://namaraii.com/posts/radiko2podcast/</link><pubDate>Fri, 09 Aug 2024 00:00:00 +0900</pubDate><author>hitoshi@namaraii.com (竹内 仁 (TAKEUCHI Hitoshi))</author><guid>https://namaraii.com/posts/radiko2podcast/</guid><description>&lt;p&gt;miyagawaさんの以下のプログラムを組み合わせて使うことで､radikoで録音した番組をPodcastプレイヤーで再生することができる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/miyagawa/ripdiko" target="_blank" rel="noreferrer"&gt;miyagawa/ripdiko: Rip radiko programs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/miyagawa/dircaster" target="_blank" rel="noreferrer"&gt;miyagawa/dircaster: Generate RSS 2.0 podcast out of directory with *.mp3s&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;おおまかな流れは以下の感じ。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;cronで起動されたripdikoがradikoを録音し､指定フォルダにMP3ファイルで保存する&lt;/li&gt;
&lt;li&gt;cronで起動したdircasterが指定フォルダにあるMP3ファイルを解析し､Podcast配信用のXMLを出力する&lt;/li&gt;
&lt;li&gt;Podcastプレイヤーで2で生成されるXMLを購読しておけば､番組が更新されるたびに通知され聞くことができる&lt;/li&gt;
&lt;li&gt;ただし､1のMP3ファイル､2のXMLはインターネットから参照できる場所に出力する必要がある(HTTPサーバが必要)&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 class="relative group"&gt;Radikoプレミアムへの対応
 &lt;div id="radikoプレミアムへの対応" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#radiko%e3%83%97%e3%83%ac%e3%83%9f%e3%82%a2%e3%83%a0%e3%81%b8%e3%81%ae%e5%af%be%e5%bf%9c" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;ただ､残念なことにripdikoはradikoプレミアムへは対応しておらず､エリアフリーで他県の番組を録音することができない。&lt;/p&gt;
&lt;p&gt;このため､&lt;a href="https://github.com/uru2/rec_radiko_ts" target="_blank" rel="noreferrer"&gt;uru2/rec_radiko_ts: Radiko timefree program recorder&lt;/a&gt;を参考にして､radikoプレミアムへログインしエリアフリーで番組を録音できるようにした。&lt;/p&gt;
&lt;p&gt;環境変数&lt;code&gt;RIPDIKO_MAIL&lt;/code&gt;でメールアドレス､&lt;code&gt;RIPDIKO_PASS&lt;/code&gt;にパスワードを設定しておくことで､他県の番組も録音することができる。&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-diff" data-lang="diff"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gh"&gt;diff --git a/bin/ripdiko b/bin/ripdiko
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gh"&gt;index ebc756a..2ca3b70 100755
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gd"&gt;--- a/bin/ripdiko
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+++ b/bin/ripdiko
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;@@ -8,6 +8,7 @@ require &amp;#39;open-uri&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; require &amp;#39;nokogiri&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; require &amp;#39;date&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; require &amp;#39;fileutils&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+require &amp;#39;json&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; module Notifier
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; SCRIPTS = ENV[&amp;#39;RIPDIKO_SCRIPTS&amp;#39;] || &amp;#34;#{ENV[&amp;#39;HOME&amp;#39;]}/.ripdiko/scripts&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;@@ -61,6 +62,43 @@ class DownloadTask
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; @output = ENV[&amp;#39;RIPDIKO_OUTPUT&amp;#39;] == nil ? &amp;#34;file&amp;#34; : ENV[&amp;#39;RIPDIKO_OUTPUT&amp;#39;]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; end
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ def login
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ uri = URI.parse(&amp;#34;https://radiko.jp/v4/api/member/login&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ data = {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;mail&amp;#34; =&amp;gt; ENV[&amp;#39;RIPDIKO_MAIL&amp;#39;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;pass&amp;#34; =&amp;gt; ENV[&amp;#39;RIPDIKO_PASS&amp;#39;]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ return &amp;#34;&amp;#34; if data[&amp;#34;mail&amp;#34;].nil? || data[&amp;#34;pass&amp;#34;].nil?
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ encoded_data = URI.encode_www_form(data)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ http = Net::HTTP.new(uri.host, uri.port)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ http.use_ssl = (uri.scheme == &amp;#34;https&amp;#34;) 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ request = Net::HTTP::Post.new(uri.path, {&amp;#39;Content-Type&amp;#39; =&amp;gt; &amp;#39;application/x-www-form-urlencoded&amp;#39;})
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ request.body = encoded_data
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ response = http.request(request)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ return JSON.parse(response.body)[&amp;#34;radiko_session&amp;#34;] || &amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ end
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ def logout
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ uri = URI.parse(&amp;#34;https://radiko.jp/v4/api/member/logout&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ data = {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;radiko_session&amp;#34; =&amp;gt; @radiko_session
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ encoded_data = URI.encode_www_form(data)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ http = Net::HTTP.new(uri.host, uri.port)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ http.use_ssl = (uri.scheme == &amp;#34;https&amp;#34;) 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ request = Net::HTTP::Post.new(uri.path, {&amp;#39;Content-Type&amp;#39; =&amp;gt; &amp;#39;application/x-www-form-urlencoded&amp;#39;})
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ request.body = encoded_data
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ response = http.request(request)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ @radiko_session = &amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ end
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; def authenticate
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; res = fetch &amp;#39;https://radiko.jp/apps/js/playerCommon.js?_=20171113&amp;#39;, {}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if /new RadikoJSPlayer\(.*?&amp;#39;pc_html5&amp;#39;,\s*&amp;#39;(\w+)&amp;#39;/ === res.body
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;@@ -79,11 +117,16 @@ class DownloadTask
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; abort &amp;#34;auth1 failed&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; end
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ @radiko_session = login
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ value = URI.encode_www_form_component(@radiko_session)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ auth2_url_param = @radiko_session.size &amp;gt; 0 ? &amp;#34;?radiko_session=#{value}&amp;#34; : &amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; length = res[&amp;#39;X-Radiko-KeyLength&amp;#39;].to_i
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; offset = res[&amp;#39;X-Radiko-KeyOffset&amp;#39;].to_i
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; partial_key = Base64.strict_encode64(auth_key.byteslice(offset, length))
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gd"&gt;- res = fetch &amp;#34;https://radiko.jp/v2/api/auth2&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ res = fetch &amp;#34;https://radiko.jp/v2/api/auth2#{auth2_url_param}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;X-Radiko-User&amp;#39; =&amp;gt; &amp;#34;dummy_user&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;X-Radiko-Device&amp;#39; =&amp;gt; &amp;#34;pc&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#39;X-Radiko-Authtoken&amp;#39; =&amp;gt; token,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;@@ -106,6 +149,40 @@ class DownloadTask
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; def now_playing(station, area)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; now = Time.now
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ station_list = {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;802&amp;#34; =&amp;gt; &amp;#34;JP25&amp;#34;, &amp;#34;ABC&amp;#34; =&amp;gt; &amp;#34;JP25&amp;#34;, &amp;#34;ABCR-KOSHIEN&amp;#34; =&amp;gt; &amp;#34;JP1&amp;#34;, &amp;#34;ABS&amp;#34; =&amp;gt; &amp;#34;JP5&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;AFB&amp;#34; =&amp;gt; &amp;#34;JP2&amp;#34;, &amp;#34;AFM&amp;#34; =&amp;gt; &amp;#34;JP5&amp;#34;, &amp;#34;AIR-G&amp;#34; =&amp;gt; &amp;#34;JP1&amp;#34;, &amp;#34;ALPHA-STATION&amp;#34; =&amp;gt; &amp;#34;JP25&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;BAYFM78&amp;#34; =&amp;gt; &amp;#34;JP8&amp;#34;, &amp;#34;BSN&amp;#34; =&amp;gt; &amp;#34;JP15&amp;#34;, &amp;#34;BSS&amp;#34; =&amp;gt; &amp;#34;JP31&amp;#34;, &amp;#34;CBC&amp;#34; =&amp;gt; &amp;#34;JP21&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;CCL&amp;#34; =&amp;gt; &amp;#34;JP25&amp;#34;, &amp;#34;CRK&amp;#34; =&amp;gt; &amp;#34;JP25&amp;#34;, &amp;#34;CROSSFM&amp;#34; =&amp;gt; &amp;#34;JP40&amp;#34;, &amp;#34;CRT&amp;#34; =&amp;gt; &amp;#34;JP9&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;DATEFM&amp;#34; =&amp;gt; &amp;#34;JP4&amp;#34;, &amp;#34;E-RADIO&amp;#34; =&amp;gt; &amp;#34;JP25&amp;#34;, &amp;#34;FBC&amp;#34; =&amp;gt; &amp;#34;JP18&amp;#34;, &amp;#34;FM-FUJI&amp;#34; =&amp;gt; &amp;#34;JP19&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;FM-OKAYAMA&amp;#34; =&amp;gt; &amp;#34;JP33&amp;#34;, &amp;#34;FM-SANIN&amp;#34; =&amp;gt; &amp;#34;JP31&amp;#34;, &amp;#34;FM807&amp;#34; =&amp;gt; &amp;#34;JP36&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;FMAICHI&amp;#34; =&amp;gt; &amp;#34;JP21&amp;#34;, &amp;#34;FMF&amp;#34; =&amp;gt; &amp;#34;JP7&amp;#34;, &amp;#34;FMFUKUI&amp;#34; =&amp;gt; &amp;#34;JP18&amp;#34;, &amp;#34;FMFUKUOKA&amp;#34; =&amp;gt; &amp;#34;JP40&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;FMGIFU&amp;#34; =&amp;gt; &amp;#34;JP21&amp;#34;, &amp;#34;FMGUNMA&amp;#34; =&amp;gt; &amp;#34;JP10&amp;#34;, &amp;#34;FMI&amp;#34; =&amp;gt; &amp;#34;JP3&amp;#34;, &amp;#34;FMJ&amp;#34; =&amp;gt; &amp;#34;JP8&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;FMK&amp;#34; =&amp;gt; &amp;#34;JP43&amp;#34;, &amp;#34;FMKAGAWA&amp;#34; =&amp;gt; &amp;#34;JP37&amp;#34;, &amp;#34;FMMIE&amp;#34; =&amp;gt; &amp;#34;JP24&amp;#34;, &amp;#34;FMN&amp;#34; =&amp;gt; &amp;#34;JP20&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;FMNAGASAKI&amp;#34; =&amp;gt; &amp;#34;JP42&amp;#34;, &amp;#34;FMNIIGATA&amp;#34; =&amp;gt; &amp;#34;JP15&amp;#34;, &amp;#34;FMO&amp;#34; =&amp;gt; &amp;#34;JP25&amp;#34;, &amp;#34;FMS&amp;#34; =&amp;gt; &amp;#34;JP41&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;FMT&amp;#34; =&amp;gt; &amp;#34;JP8&amp;#34;, &amp;#34;FMTOYAMA&amp;#34; =&amp;gt; &amp;#34;JP16&amp;#34;, &amp;#34;FMY&amp;#34; =&amp;gt; &amp;#34;JP35&amp;#34;, &amp;#34;FM_OITA&amp;#34; =&amp;gt; &amp;#34;JP44&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;FM_OKINAWA&amp;#34; =&amp;gt; &amp;#34;JP47&amp;#34;, &amp;#34;GBS&amp;#34; =&amp;gt; &amp;#34;JP21&amp;#34;, &amp;#34;HBC&amp;#34; =&amp;gt; &amp;#34;JP1&amp;#34;, &amp;#34;HELLOFIVE&amp;#34; =&amp;gt; &amp;#34;JP17&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;HFM&amp;#34; =&amp;gt; &amp;#34;JP34&amp;#34;, &amp;#34;HI-SIX&amp;#34; =&amp;gt; &amp;#34;JP39&amp;#34;, &amp;#34;IBC&amp;#34; =&amp;gt; &amp;#34;JP3&amp;#34;, &amp;#34;IBS&amp;#34; =&amp;gt; &amp;#34;JP8&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;INT&amp;#34; =&amp;gt; &amp;#34;JP8&amp;#34;, &amp;#34;JOAK&amp;#34; =&amp;gt; &amp;#34;JP8&amp;#34;, &amp;#34;JOAK-FM&amp;#34; =&amp;gt; &amp;#34;JP1&amp;#34;, &amp;#34;JOBK&amp;#34; =&amp;gt; &amp;#34;JP25&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;JOCK&amp;#34; =&amp;gt; &amp;#34;JP16&amp;#34;, &amp;#34;JOEU-FM&amp;#34; =&amp;gt; &amp;#34;JP38&amp;#34;, &amp;#34;JOFK&amp;#34; =&amp;gt; &amp;#34;JP31&amp;#34;, &amp;#34;JOHK&amp;#34; =&amp;gt; &amp;#34;JP2&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;JOIK&amp;#34; =&amp;gt; &amp;#34;JP1&amp;#34;, &amp;#34;JOLK&amp;#34; =&amp;gt; &amp;#34;JP40&amp;#34;, &amp;#34;JORF&amp;#34; =&amp;gt; &amp;#34;JP8&amp;#34;, &amp;#34;JOYFM&amp;#34; =&amp;gt; &amp;#34;JP45&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;JOZK&amp;#34; =&amp;gt; &amp;#34;JP36&amp;#34;, &amp;#34;JRT&amp;#34; =&amp;gt; &amp;#34;JP36&amp;#34;, &amp;#34;K-MIX&amp;#34; =&amp;gt; &amp;#34;JP22&amp;#34;, &amp;#34;KBC&amp;#34; =&amp;gt; &amp;#34;JP40&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;KBS&amp;#34; =&amp;gt; &amp;#34;JP25&amp;#34;, &amp;#34;KISSFMKOBE&amp;#34; =&amp;gt; &amp;#34;JP25&amp;#34;, &amp;#34;KNB&amp;#34; =&amp;gt; &amp;#34;JP16&amp;#34;, &amp;#34;KRY&amp;#34; =&amp;gt; &amp;#34;JP35&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;LFR&amp;#34; =&amp;gt; &amp;#34;JP8&amp;#34;, &amp;#34;LOVEFM&amp;#34; =&amp;gt; &amp;#34;JP40&amp;#34;, &amp;#34;MBC&amp;#34; =&amp;gt; &amp;#34;JP46&amp;#34;, &amp;#34;MBS&amp;#34; =&amp;gt; &amp;#34;JP25&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;MRO&amp;#34; =&amp;gt; &amp;#34;JP17&amp;#34;, &amp;#34;MRT&amp;#34; =&amp;gt; &amp;#34;JP45&amp;#34;, &amp;#34;MYUFM&amp;#34; =&amp;gt; &amp;#34;JP46&amp;#34;, &amp;#34;NACK5&amp;#34; =&amp;gt; &amp;#34;JP8&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;NBC&amp;#34; =&amp;gt; &amp;#34;JP41&amp;#34;, &amp;#34;NORTHWAVE&amp;#34; =&amp;gt; &amp;#34;JP1&amp;#34;, &amp;#34;OBC&amp;#34; =&amp;gt; &amp;#34;JP25&amp;#34;, &amp;#34;OBS&amp;#34; =&amp;gt; &amp;#34;JP44&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;QRR&amp;#34; =&amp;gt; &amp;#34;JP8&amp;#34;, &amp;#34;RAB&amp;#34; =&amp;gt; &amp;#34;JP2&amp;#34;, &amp;#34;RADIOBERRY&amp;#34; =&amp;gt; &amp;#34;JP9&amp;#34;, &amp;#34;RBC&amp;#34; =&amp;gt; &amp;#34;JP47&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;RCC&amp;#34; =&amp;gt; &amp;#34;JP34&amp;#34;, &amp;#34;RFC&amp;#34; =&amp;gt; &amp;#34;JP7&amp;#34;, &amp;#34;RFM&amp;#34; =&amp;gt; &amp;#34;JP6&amp;#34;, &amp;#34;RKB&amp;#34; =&amp;gt; &amp;#34;JP40&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;RKC&amp;#34; =&amp;gt; &amp;#34;JP39&amp;#34;, &amp;#34;RKK&amp;#34; =&amp;gt; &amp;#34;JP43&amp;#34;, &amp;#34;RN1&amp;#34; =&amp;gt; &amp;#34;JP1&amp;#34;, &amp;#34;RN2&amp;#34; =&amp;gt; &amp;#34;JP1&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;RNB&amp;#34; =&amp;gt; &amp;#34;JP38&amp;#34;, &amp;#34;RNC&amp;#34; =&amp;gt; &amp;#34;JP37&amp;#34;, &amp;#34;ROK&amp;#34; =&amp;gt; &amp;#34;JP47&amp;#34;, &amp;#34;RSK&amp;#34; =&amp;gt; &amp;#34;JP33&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;SBC&amp;#34; =&amp;gt; &amp;#34;JP20&amp;#34;, &amp;#34;SBS&amp;#34; =&amp;gt; &amp;#34;JP22&amp;#34;, &amp;#34;STV&amp;#34; =&amp;gt; &amp;#34;JP1&amp;#34;, &amp;#34;TBC&amp;#34; =&amp;gt; &amp;#34;JP4&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;TBS&amp;#34; =&amp;gt; &amp;#34;JP8&amp;#34;, &amp;#34;TOKAIRADIO&amp;#34; =&amp;gt; &amp;#34;JP21&amp;#34;, &amp;#34;WBS&amp;#34; =&amp;gt; &amp;#34;JP30&amp;#34;, &amp;#34;YBC&amp;#34; =&amp;gt; &amp;#34;JP6&amp;#34;, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ &amp;#34;YBS&amp;#34; =&amp;gt; &amp;#34;JP19&amp;#34;, &amp;#34;YFM&amp;#34; =&amp;gt; &amp;#34;JP8&amp;#34;, &amp;#34;ZIP-FM&amp;#34; =&amp;gt; &amp;#34;JP21&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ # 都道府県コードの変換（自地域以外のラジオ局を指定された場合）
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ area = station_list[station] if station_list[station] != area
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; doc = Nokogiri::XML(URI.parse(&amp;#34;https://radiko.jp/v3/program/now/#{area}.xml&amp;#34;).open)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; node = doc.xpath(%Q|//station[@id=&amp;#34;#{station}&amp;#34;]|).first
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;@@ -209,6 +286,8 @@ class DownloadTask
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; when &amp;#34;fifo&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; FileUtils.rm tempfile
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; end
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ logout
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; end
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; def fetch(url, headers)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item></channel></rss>