How to Run a 24/7 Lo-Fi Radio Stream from a VPS

Published on

Complete setup guide for running a lo-fi radio or music stream 24/7 from a VPS. Covers audio sources, FFmpeg configuration, visualizations, and YouTube/Twitch streaming.

Written by Jochem, Infrastructure Expert, 5-10 years experience in game server hosting, VPS infrastructure, and 24/7 streaming solutions. Read author bio →

Lo-fi radio streams are one of the most successful 24/7 formats on YouTube and Twitch. Running one from a VPS costs less than your monthly coffee budget and runs indefinitely without your computer.

What You Need

  • A VPS (2+ cores, 4GB RAM for video output)
  • FFmpeg installed
  • Audio files (royalty-free lo-fi music)
  • Background animation or still image
  • Stream key for your platform

Audio Setup

Royalty-Free Music Sources

Never use copyrighted music. Free sources:

  • Lofi Girl's open-source tracks (check licenses)
  • Free Music Archive
  • Artists who specifically license for streaming
  • Your own productions

Organizing Files

mkdir -p /stream/{audio,video,assets}
# Upload your audio files to /stream/audio/

Creating Audio Playlist

find /stream/audio -name "*.mp3" | shuf | sed "s/^/file '/" | sed "s/$/'/" > /stream/audio/playlist.txt

Video Background

Option 1: Static Image with Animated Overlay

ffmpeg -loop 1 -i /stream/assets/background.png \
    -stream_loop -1 -f concat -safe 0 -i /stream/audio/playlist.txt \
    -vf "drawtext=fontfile=/fonts/font.ttf:text='Lo-Fi Radio':fontcolor=white:fontsize=24:x=50:y=50" \
    -c:v libx264 -preset medium -tune stillimage -b:v 1500k \
    -c:a aac -b:a 192k -ar 44100 \
    -shortest -f flv rtmp://live.twitch.tv/app/KEY

Option 2: Looping Video Background

ffmpeg -stream_loop -1 -i /stream/video/animation.mp4 \
    -stream_loop -1 -f concat -safe 0 -i /stream/audio/playlist.txt \
    -map 0:v -map 1:a \
    -c:v libx264 -preset medium -b:v 3000k \
    -c:a aac -b:a 192k \
    -f flv rtmp://a.rtmp.youtube.com/live2/KEY

Option 3: Audio Visualizer

Generate a waveform visualization:

ffmpeg -stream_loop -1 -f concat -safe 0 -i /stream/audio/playlist.txt \
    -filter_complex "[0:a]showwaves=s=1920x1080:mode=line:colors=purple[v]" \
    -map "[v]" -map 0:a \
    -c:v libx264 -preset medium -b:v 3000k \
    -c:a aac -b:a 192k \
    -f flv rtmp://live.twitch.tv/app/KEY

systemd Auto-Restart

Create /etc/systemd/system/lofi-stream.service:

[Unit]
Description=Lo-Fi Radio Stream
After=network.target

[Service]
Type=simple
User=stream
WorkingDirectory=/stream
ExecStart=/usr/bin/ffmpeg -loop 1 -i /stream/assets/bg.png -stream_loop -1 -f concat -safe 0 -i /stream/audio/playlist.txt -c:v libx264 -preset medium -tune stillimage -b:v 1500k -c:a aac -b:a 192k -shortest -f flv rtmp://live.twitch.tv/app/KEY
Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target

Playlist Rotation

Shuffle the playlist daily to prevent repetition:

# crontab entry
0 4 * * * /stream/scripts/shuffle.sh && systemctl restart lofi-stream

The restart is brief (seconds) and barely noticeable to viewers.

Resource Usage

A 1080p lo-fi stream with static background uses:

  • CPU: 1-2 cores (~30-50% of a modern core)
  • RAM: ~500MB
  • Bandwidth: ~2-4 Mbps upload
  • Storage: Depends on music library (10-50GB typical)

On a Space-Node VPS, this runs at a fraction of the server's capacity, leaving room for other tasks.

Growing Your Stream

Lo-fi streams grow slowly but steadily:

  • Consistent uptime builds algorithmic favor (YouTube especially)
  • Unique aesthetics differentiate from competitors
  • Engaging chat community (Discord integration)
  • Regular new music additions keep returning viewers

The overhead is minimal after initial setup. Upload new tracks monthly, and the stream manages itself.

Jochem

About the Author

Jochem, Infrastructure Expert, expert in game server hosting, VPS infrastructure, and 24/7 streaming solutions with 5-10 years experience.

Since 2023
500+ servers hosted
4.8/5 avg rating

I specialize in Minecraft, FiveM, Rust, and 24/7 streaming infrastructure, operating enterprise-grade AMD Ryzen 9 hardware in Netherlands datacenters.

View my full bio and credentials →

Start Streaming in Minutes

Join content creators worldwide who trust our streaming infrastructure. Setup is instant and support is always available.

How to Run a 24/7 Lo-Fi Radio Stream from a VPS