+
Skip to content

A Spring Boot application for scheduling and recording IPTV streams using ffmpeg with REST API management

License

Notifications You must be signed in to change notification settings

pyrmon/iptv-recorder

IPTV Recording Scheduler

A Spring Boot application that schedules and records IPTV streams using ffmpeg.

Legal Notice

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.

Features

  • Schedule recordings from IPTV streams
  • RESTful API for managing channels and recordings
  • SQLite database for persistence
  • Docker support
  • Health checks and monitoring

Quick Start

Prerequisites

  • Java 21+
  • Maven 3.6+
  • Docker (optional)
  • ffmpeg installed on the system

Running Locally

  1. Clone the repository
  2. Copy .env.example to .env and configure your API key
  3. Run with Maven:
    mvn spring-boot:run

Running with Docker

  1. Copy compose.example.yml to compose.yml
  2. Configure your environment variables in .env
  3. Important: Update the Dockerfile to set your local timezone for accurate recording scheduling
  4. Build and run:
    docker build -t iptv-recorder .
    docker compose up -d

API Documentation

The application exposes REST endpoints for:

  • Managing channels (/api/channels)
  • Scheduling recordings (/api/recordings)
  • Viewing past recordings (/api/past-recordings)
  • Health monitoring (/actuator/health)

Past Recordings API

  • GET /api/past-recordings - Get all past recordings
  • GET /api/past-recordings/channel/{channelName} - Get past recordings for a specific channel

Configuration

Key configuration options in application.yml:

  • server.port: Application port (default: 8084)
  • application.security.api-key: API key for authentication
  • recordingservice.recording-folder-prefix: Directory for recordings

Versioning

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

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License.

About

A Spring Boot application for scheduling and recording IPTV streams using ffmpeg with REST API management

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载