The Smell of Molten Projects in the Morning

Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.

The New Hotness

  • Icecast and Ezstream Configuration

    Plugging a 64 GB USB stick with directories full of MP3 / OGG files into an always-on Raspberry Pi running Pi-Hole, one can use Icecast to stream them for clients on the LAN, so as to avoid over-the-Intertubes streaming issues.

    The only changes in the /etc/icecast2/icecast.xml file cover passwords, the number of source streams, and the hostname. It’s that simple, really.

    Given a directory of files, generate a file-per-line playlist:

    find /mnt/music/goodmusic/ -name \*mp3 | sort > /mnt/music/goodmusic/playlist.m3u
    

    Then set up a corresponding Ezstream XML file, perhaps imaginatively named goodmusic.xml:

    <ezstream>
        <url>http://localhost:8000/goodmusic</url>
        <sourcepassword>make-up-your-own</sourcepassword>
        <format>MP3</format>
        <filename>/mnt/music/goodmusic/playlist.m3u</filename>
        <shuffle>1</shuffle>
        <stream_once>0</stream_once>
        <svrinfoname>Good Music</svrinfoname>
        <svrinfourl>pihole.local</svrinfourl>
        <svrinfogenre>Good Music Streaming 24x7</svrinfogenre>
        <svrinfodescription>Techno Dub</svrinfodescription>
        <svrinfobitrate>128</svrinfobitrate>
        <svrinfochannels>2</svrinfochannels>
        <svrinfosamplerate>44100</svrinfosamplerate>
        <svrinfopublic>1</svrinfopublic>
    </ezstream>
    

    Fire off the source stream in /etc/rc.local:

    ezstream -c /home/pi/Icecast/goodmusic.xml &
    

    The ampersand tells Bash to fire-and-forget the process, so it runs all the time. One could, I suppose, put it in crontab to start after each boot or puzzle out the corresponding systemd incantation, but …

    Add the station to your streaming media player:

             'KEY_KP5'   : ['Good Music',False,['mplayer','-playlist','http://192.168.1.2:8000/goodmusic.m3u']],
    

    And then It Just Works™.