mirror of
https://github.com/kemko/icecast-ripper.git
synced 2026-01-01 15:55:42 +03:00
4666cbeb8eddc219e687d4c538ab1802d31987bd
Icecast Ripper
A Go application that monitors and records Icecast audio streams. It detects when streams go live, automatically records the audio content, and generates an RSS feed of recordings.
Features
- Automatic Stream Monitoring: Periodically checks if a stream is active
- Intelligent Recording: Records audio streams when they become active
- RSS Feed Generation: Provides an RSS feed of recorded streams
- Web Interface: Simple HTTP server for accessing recordings and RSS feed
- Docker Support: Run easily in containers with Docker and Docker Compose
- Configurable: Set recording paths, check intervals, and more via environment variables
Installation
Binary Installation
- Download the latest release from the GitHub releases page
- Extract the binary to a location in your PATH
- Run the binary with the required configuration (see Configuration section)
Docker Installation
Pull the Docker image:
docker pull ghcr.io/kemko/icecast-ripper:master
Or use Docker Compose (see the Docker Compose section below).
Building From Source
Requires Go 1.24 or higher.
git clone https://github.com/kemko/icecast-ripper.git
cd icecast-ripper
go build -o icecast-ripper ./cmd/icecast-ripper/main.go
Configuration
Icecast Ripper is configured through environment variables:
| Environment Variable | Description | Default | Required |
|---|---|---|---|
STREAM_URL |
URL of the Icecast stream to monitor | - | Yes |
CHECK_INTERVAL |
Interval between stream checks (e.g., 1m, 30s) | 1m | No |
RECORDINGS_PATH |
Path where recordings are stored | ./recordings | No |
TEMP_PATH |
Path for temporary files | ./temp | No |
SERVER_ADDRESS |
Address and port for the HTTP server | :8080 | No |
RSS_FEED_URL |
Public URL for the RSS feed | http://localhost:8080/rss | No |
LOG_LEVEL |
Logging level (debug, info, warn, error) | info | No |
Docker Compose
Create a docker-compose.yml file:
---
services:
icecast-ripper:
image: ghcr.io/kemko/icecast-ripper:master
ports:
- "8080:8080"
environment:
- STREAM_URL=http://example.com/stream
- CHECK_INTERVAL=1m
- RECORDINGS_PATH=/records
- TEMP_PATH=/app/temp
- SERVER_ADDRESS=:8080
- RSS_FEED_URL=http://localhost:8080/rss
- LOG_LEVEL=info
volumes:
- ./records:/records
- ./temp:/app/temp
- ./data:/app/data
Run with:
docker-compose up -d
Usage
- Start the application with the required configuration
- The application will monitor the stream at the specified interval
- When the stream becomes active, recording starts automatically
- Access the RSS feed at
http://localhost:8080/rss(or the configured URL) - Access the recordings directly via the web interface
API Endpoints
GET /- Lists all recordingsGET /rss- RSS feed of recordingsGET /recordings/{filename}- Download a specific recording
License
This project is licensed under the MIT License - see the LICENSE file for details.
Languages
Go
93.3%
Dockerfile
3.7%
Makefile
3%