Skip to content

Instantly share code, notes, and snippets.

@dmpanch
Last active June 30, 2024 06:14
Show Gist options
  • Save dmpanch/30408f71491f06352a73aec7775a50b7 to your computer and use it in GitHub Desktop.
Save dmpanch/30408f71491f06352a73aec7775a50b7 to your computer and use it in GitHub Desktop.
How to create internet radio on MacOS Sierra 10.12
All actions are performed in Terminal.app.
1. Install Homebrew http://brew.sh/
2. Install Jack (route audio tool) http://jackaudio.org/. Current stable version from official website doesn't work with
MacOS Sierra (I use 10.12.3) so you need to download beta version from there https://yadi.sk/d/JwT10b7v3Dm5yy.
After installing reboot your computer.
3. Install Darkice (audio streamer) via brew.
Run this command: brew install darkice --use-llvm
Darkice will be installed with Jack 0.125.0 that doesn't work with used MacOS so we need to uninstall it,
to continue using our Jack beta version.
Run this command: brew uninstall --ignore-dependencies jack
4. Install Icecast (web server for our radio station)
Run this command: brew install icecast
5. Download Icecast (https://yadi.sk/d/aq5OtdWJ3Dm5sb) and Darkice (https://yadi.sk/d/_WVtCjJE3Dm5ti) cfgs
and put to the root folder (I will use commands for root folder in next steps) or any folder you want.
6. Run Icecast with command: icecast -c ~/.icecast.xml
To run it in background add -b key.
If you get an error on this step "FATAL: could not open error logging" - open icecast.xml and change directory to your version
from /usr/local/Cellar/icecast/icecast_current_version.
7. Run JackPilot from Apps. Press Start.
8. Run Darkice with command: darkice -c ~/.darkice.cfg
To run it in background need to use screen.
Go to http://localhost:8000/admin/ and enter the admin-user (admin) and admin-password (hackme) from the icecast.xml
config file.
You should arrive at the admin page.
Suggest you to change user and password in both config files from default to prevent possible attacks.
Your stream available via http://localhost:8000/spin
9. To run radio separately from system sounds I prefer to use VLC player.
Install and run VLC player, go to Audio - Audio Device - and choose JackRouter as audio output.
Play music.
For shuffling use VLC plugin https://addons.videolan.org/content/show.php/Shuffle+Playlist?content=174527
10. Return to JackPilot, press Routing, Connection Manager opens.
Here you'll see in/outs for your system.
Now we need to bind VLC left and right channels to our Darkice server.
Just press on VLC out1 and on darkice left, color should change to red.
Do the same fro out2 and right channel.
11. Open 8000 port in your router settings to get access outside your network.
12. Enjoy your radio.
@JessePimenta
Copy link

thanks for this. all working except localhost:8000/spin says 404 - The file you requested could not be found

@dmpanch
Copy link
Author

dmpanch commented Jul 12, 2019

Hi Jessie, please check your mountpoint in icecast conf file and use it in URL instead of /spin.

Btw, I found better solution for me instead of Darkice and Jack, now I use Mixx - it’s simply connect to Icecast and provide UI for tracks control.

@abrahamsonido
Copy link

Hi! Thanks a lot for your guide! I have this problem in order to load Icecast:

I/O warning : failed to load external entity "/Users/Abraham/.icecast.xml"
FATAL: error parsing config file (/Users/Abraham/.icecast.xml)
XML config parsing error

Could you help me ?

Thanks a lot!

Best Regards,

Abraham

@dmpanch
Copy link
Author

dmpanch commented Jul 29, 2019

Hi Abraham,

Please check your config run permissions and user you’re running icecast from, please refer to icecast docs.

@akkronik
Copy link

Hi there,

I'm a real beginner in coding and I got that issue:

[2020-03-30 00:32:29] WARN CONFIG/_parse_root Warning, not configured, using default value "Earth".
[2020-03-30 00:32:29] WARN fserve/fserve_recheck_mime_types Cannot open mime types file /etc/mime.types
FATAL: could not open error logging (/usr/local/Cellar/icecast/2.4.4_1/var/log/icecast/error.log): No such file or directory
FATAL: could not open access logging (/usr/local/Cellar/icecast/2.4.4_1/var/log/icecast/access.log): No such file or directory
FATAL: Could not start logging

@pyszynski
Copy link

I have the same problem:
[2020-03-30 00:32:29] WARN CONFIG/_parse_root Warning, not configured, using default value "Earth".
[2020-03-30 00:32:29] WARN fserve/fserve_recheck_mime_types Cannot open mime types file /etc/mime.types
FATAL: could not open error logging (/usr/local/Cellar/icecast/2.4.4_1/var/log/icecast/error.log): No such file or directory
FATAL: could not open access logging (/usr/local/Cellar/icecast/2.4.4_1/var/log/icecast/access.log): No such file or directory
FATAL: Could not start logging

could You please help?

@basipdev
Copy link

basipdev commented May 4, 2020

Hi there, it looks like you're both trying to use relative path /var/log/icecast for the error.log and access.log in your icecast config, but icecast trying to find it inside /usr/local/Cellar/icecast/2.4.4_1/var/log/icecast/.

Please check this article, find, and set a relative folder for your logs.

@pyszynski
Copy link

Thanks a lot - It helped!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment