A Spring Boot application that schedules and records IPTV streams using ffmpeg.
This software is intended for personal and educational use only. Users are responsible for ensuring they have the legal right to record any content and must comply with all applicable laws, copyright regulations, and terms of service of their IPTV providers.
- Only record content you have the right to record
- Respect copyright laws and intellectual property rights
- Comply with your IPTV provider's terms of service
- Users assume all legal responsibility for their use of this software
The developers of this software are not responsible for any misuse or legal issues arising from its use.
- Schedule recordings from IPTV streams
- RESTful API for managing channels and recordings
- SQLite database for persistence
- Docker support
- Health checks and monitoring
- Java 21+
- Maven 3.6+
- Docker (optional)
- ffmpeg installed on the system
- Clone the repository
- Copy
.env.example
to.env
and configure your API key - Run with Maven:
mvn spring-boot:run
- Copy
compose.example.yml
tocompose.yml
- Configure your environment variables in
.env
- Important: Update the Dockerfile to set your local timezone for accurate recording scheduling
- Build and run:
docker build -t iptv-recorder . docker compose up -d
The application exposes REST endpoints for:
- Managing channels (
/api/channels
) - Scheduling recordings (
/api/recordings
) - Viewing past recordings (
/api/past-recordings
) - Health monitoring (
/actuator/health
)
GET /api/past-recordings
- Get all past recordingsGET /api/past-recordings/channel/{channelName}
- Get past recordings for a specific channel
Key configuration options in application.yml
:
server.port
: Application port (default: 8084)application.security.api-key
: API key for authenticationrecordingservice.recording-folder-prefix
: Directory for recordings
This project uses automated semantic versioning:
- Main branch: Automatically creates release versions and tags
- Feature branches: Creates snapshot versions with branch name and commit hash
- Docker images: Tagged with version numbers and
latest
for main branch
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.