feat: stream download cli

This commit is contained in:
2025-10-10 21:01:34 +02:00
commit 3f46bcc1bd
7 changed files with 375 additions and 0 deletions

44
README.md Normal file
View File

@@ -0,0 +1,44 @@
# SDL - Stream Downloader CLI
`sdl` is a simple command-line tool written in Go for downloading HTTP Live Streaming (HLS) video streams.
## Installation
```bash
go install ./...
```
This installs the `sdl` binary into your `GOBIN` (defaults to `~/go/bin`). Ensure this directory is on your `PATH`.
## Usage
```bash
sdl https://example.com/path/to/playlist.m3u8
```
The downloader automatically picks the highest-bandwidth variant when given a master playlist, downloads the segments, and transmuxes them into an `.mp4` container. You can override the output filename:
```bash
sdl -o myvideo.mp4 https://example.com/path/to/playlist.m3u8
```
## Features
- Follows HTTP redirects (up to 5 hops)
- Supports HLS master playlists (auto-select highest bandwidth variant)
- Produces `.mp4` output via `ffmpeg`
- Respects basic HTTP timeouts (30 seconds per request)
## Limitations
- Requires `ffmpeg` in `PATH` for transmuxing
- No retry logic beyond standard HTTP redirects
## Development
```bash
go build ./...
go test ./...
```
Contributions and issue reports are welcome!