alanxoc3 / radico8

A pico8 web radio.
Other
14 stars 13 forks source link

radico8

radico8 is both a youtube stream and web radio that plays pico-8 music.

submitting songs

if you know some good pico-8 music, submit a pull request adding the lexaloffle cart-id and track to the playlist.txt file.

issues

you can submit a github issues for issues with the stream, feature suggestions, and bugfixes.

youtube changes the video url everytime the stream goes down unless you use the link at the top of this document. so make sure you bookmark that link.

giving credit to the actual artist of a song is a manual process. if a song is attributed to the wrong user please submit a pull request with the fix in the playlist.txt file.

how it works

behavior

running locally

you can run the radio locally on a linux system. here are the steps:

# the radico8 p8/lua files should be in the cartridges directory.
> ls cartridges | grep radico8
radico8.lua
radico8.p8

# perform a 1 time download of the carts listed in the playlist file.
# running this script multiple times will skip carts that are already downloaded.
# this populates the cartridges directory with ".p8" and ".txt" files and removes comments/formatting from the playlist.txt file.
> ./scripts/install_carts ./playlist.txt cartridges
Saved size: 212 212 3665

# and finally, run the radio!
# this opens up pico8 and loads carts/songs on demand.
# also listens to changes in the playlist.txt file (good for a 24/7 radio).
> ./scripts/local-radio /opt/pico8/pico8 cartridges playlist.txt
hotfoot-2:0:0:34:repeat:
seinsim-0:18:0:16:repeat:
...

running the server

radico8 is currently hosted on a tiny arch-linux linode instance along with some other things. there are 4 parts to the server setup:

radico8 could be setup on any linux machine, but it is a bit of a manual process. here are the general steps:

1. ensure you have the docker daemon installed & running
2. if you want to host a webradio:
   - ensure you have icecast installed: https://icecast.org/
   - make sure you have a file at: /etc/radico8/icecast.env
   - the file content would be:
     PASS=<icecast-stream-token>
3. if you want to host a youtube stream:
   - setup a youtube stream, use these scripts to help:
     - ./get_oauth_refresh_token
     - ./update_youtube_broadcast
   - make sure you have a file at: /etc/radico8/youtube.env
   - the file content would be:
     PASS=<youtube-stream-token>
4. run this script: install_to_server
   - it may require some tweaking since it's designed for a specific setup
   - systemd services: radico8 radico8-icecast radico8-youtube radico8-youtube-backup
   - systemd timers: radico8-install-carts radico8-reboot
5. use systemd to manage the radico8 server:
   - initial install of carts: systemctl restart radico8-install-carts
   - restart radico8: systemctl restart radico8

credits

legal stuff

please don't sue me. i'm not that rich anyways, so it's probably not worth it. if you're the author of a song and you'd like it removed from the radio, just submit a pull request to remove that song.

this repo is licensed under CC4-BY-NC-SA because most pico-8 games use that license too.