
- Add MIT LICENSE file - Make README more generic and comprehensive - Add installation and troubleshooting sections - Include systemd service integration docs - Update with build and deployment instructions
1.8 KiB
1.8 KiB
Livestream Archiver
A Rust application that monitors a directory for livestream recordings, processes them, and syncs them to a PC.
Features
- File Detection: Monitors
/home/rockvilleav/Sync/Livestreams
for new MP4 files - Readiness Check: Waits for files to be completely written before processing
- PC Sync: Uses rsync to send files to your PC immediately after detection
- Caching & Retry: Caches failed syncs and retries them on subsequent runs
- Processing: Converts files to AV1 using QSV hardware acceleration
- Organization: Creates date-based directory structure in Jellyfin format
- Cleanup: Deletes original files after successful processing and sync
Configuration
Set the PC_SYNC_TARGET
environment variable to configure where files are synced:
export PC_SYNC_TARGET="user@192.168.1.100:/path/to/destination/"
If not set, defaults to: user@192.168.1.100:/path/to/destination/
Usage
cargo run
The application will:
- Check for existing unprocessed files
- Start monitoring for new files
- For each detected file:
- Wait for it to be ready (stable size/modification time)
- Sync to PC using rsync
- Convert to AV1 format
- Create NFO metadata file
- Delete original file
Dependencies
rsync
must be installed and accessible in PATHffmpeg
with QSV support for hardware acceleration- SSH key authentication should be set up for passwordless rsync
Directory Structure
Output files are organized as:
/media/archive/jellyfin/livestreams/
├── 2024/
│ ├── 01-January/
│ │ ├── Divine Worship Service - RTSDA | January 01 2024.mp4
│ │ ├── Divine Worship Service - RTSDA | January 01 2024.nfo
│ │ └── ...
│ └── ...
└── ...