Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/selsta/hlsdl
C program to download VoD HLS (.m3u8) files
https://github.com/selsta/hlsdl
hls hls-stream m3u8
Last synced: 5 days ago
JSON representation
C program to download VoD HLS (.m3u8) files
- Host: GitHub
- URL: https://github.com/selsta/hlsdl
- Owner: selsta
- License: mit
- Created: 2014-12-07T11:51:16.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2024-04-09T04:59:13.000Z (8 months ago)
- Last Synced: 2024-12-01T21:03:49.074Z (12 days ago)
- Topics: hls, hls-stream, m3u8
- Language: C
- Homepage:
- Size: 329 KB
- Stars: 640
- Watchers: 45
- Forks: 157
- Open Issues: 44
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-video - selsta/hlsdl - C program to download VoD HLS (.m3u8) files. (HLS / Talks Presentations Podcasts)
README
hlsdl
=====This program converts .m3u8 playlists (using fragmented MPEG-2 Transport Streams) to a .ts video. It supports decryption of both AES-128 and SAMPLE-AES encryption.
Requirements
------------This program requires libcurl and libcrypto libraries.
Build
-----![hlsdl build](https://github.com/selsta/hlsdl/workflows/hlsdl%20build/badge.svg)
Linux:
`make && make install && make clean`Windows:
https://github.com/selsta/hlsdl/blob/master/msvc/BUID_WINDOWS.txtDocker: `docker build -t hlsdl:latest .`
Usage and Options
-----------------
`./hlsdl [options] url````
docker run -v ./data:/var/hlsdl/data --rm -it hlsdl:latest hlsdl [options] url
```---------------------------
```
-b ... Automatically choose the best quality.-W ... Choose largest width lower or equal than this.
-H ... Choose largest height lower or equal than this.
-A ... Select audio language.
-v ... Verbose more information.
-o ... Choose name of output file ("-" alias for stdout).
-u ... Set custom HTTP User-Agent header.
-h ... Set custom HTTP header.
-p ... Set proxy uri.
-k ... Allow to replace part of AES key uri - old.
-n ... Allow to replace part of AES key uri - new.
-f ... Force overwriting the output file.
-F ... Force ignore detection of DRM.
-K ... Force AES key value (hexstring)
-q ... Print less to the console.
-d ... Print the openssl decryption command.
-t ... Print the links to the .ts files.
-s ... Set live start offset in seconds.
-i ... Set live stream download duration in seconds.
-e ... Set refresh delay in seconds.
-r ... Set max retries at open.
-w ... Set max download segment retries.
-a ... Set additional url to the audio media playlist.
-c ... Treat HTTP code 206 as 200 even if request was made without range header.
-C ... the file name of file holding cookie data in the old Netscape / Mozilla cookie data format.
```ToDo
-----
* support for Fragmented MPEG-4 playlist
* support for EXT-X-MAP in the MPEG-2 Transport Streams playlistIdeas
------ Multithreading
License
-------[MIT License](https://github.com/selsta/hlsdl/blob/master/LICENSE)