README
Dependencies
- mkvmerge (optional, mkv output required)
! Minyami requires Node Active/Maintenance LTS latest or Current latest. Active LTS is recommended. Details here.
Make sure you had put the binary files into your system PATH
.
Installation
npm -g i minyami
or yarn global add minyami
Please also install the following extension to work with Minyami
- Install Chrome extension (recommended): https://chrome.google.com/webstore/detail/minyami/cgejkofhdaffiifhcohjdbbheldkiaed (which is also open-sourced here)
Usage
Help:
Commands Description Alias
--help <command> Show help documentation -h
<command> Show help of a specified comma
--version Show version
--download <input_path> Download video -d
<input_path> m3u8 file path
--threads <limit> Threads limit
<limit> (Optional) Limit of threads, defaults to 5
--retries <limit> Retry limit
<limit> (Optional) Limit of retry times
--output, o <path> Output path
<path> (Optional) Output file path, defaults to ./output.mkv
--temp-dir <path> Temporary file path
<path> (Optional) Temporary file path, defaults to env.TEMP
--key <key> Set key manually (Internal use)
<key> (Optional) Key for decrypt video.
--cookies <cookies> Cookies used to download
<cookies>
--headers, H <headers> HTTP Header used to download
<headers> Custom header. eg. "User-Agent: xxxxx". This option will override --cookies.
--live Download live
--format <format_name> (Optional) Set output format. default: ts
<format_name> Format name. ts or mkv.
--proxy <proxy-server> Use the specified HTTP/HTTPS/SOCKS5 proxy
<proxy-server> Set proxy in [protocol://<host>:<port>] format. eg. --proxy "http://127.0.0.1:1080".
--slice <range> Download specified part of the stream
<range> Set time range in [<hh:mm:ss>-<hh:mm:ss> format]. eg. --slice "45:00-53:00"
--no-merge Do not merge m3u8 chunks.
--keep, k Keep temporary files.
--keep-encrypted-chunks Do not delete encrypted chunks after decryption.
--chunk-naming-strategy Temporary file naming strategy. Defaults to 1.
--resume <input_path> Resume a download. (Archive) -r
<input_path> m3u8 file path
--clean Clean cache files
Options:
Options Description
--verbose, debug Debug output
FAQ
Q: Should I keep the browser open when downloading?
A: It's not necessary.
Q: How to set proxy for Minyami?
A: You can use --proxy
to set proxy server for Minyami. HTTP/SOCKS5 proxy are supported. Or you can use environment variables HTTP_PROXY
/HTTPS_PROXY
/ALL_PROXY
to provide proxy configuration for Minyami.
Q: How to set temporary file location?
A: You can use environment variables to set the directory of temporary files. See Issue #80.
Q: How to set multiple HTTP headers?
A: By providing multiple -H/--headers option. For example, minyami -d xxxx -H "Cookie: xxxx" --headers "User-Agent: yyy"
.
Use as a library (3.1.0+)
import { ArchiveDownloader } from 'minyami';
import { LiveDownloader } from 'minyami';
chunk-downloaded
Event: currentChunkInfo
<object>
The information of the chunk which is just downloaded.
The 'chunk-downloaded'
event is emitted when every media chunk is downloaded.
chunk-error
Event: error: Error
The 'chunk-error'
event is emitted when failed to download or decrypt media chunks.
downloaded
Event: The 'downloaded'
event is emitted after all chunks are downloaded but before starting merge.
finished
Event: The 'finished'
event is emitted after all the works are done. CLI program exits after this event is emitted.
merge-error
Event: error: Error
The merge-error
event is emitted when a merge progress is failed.
critical-error
Event: error: Error
The critical-error
is emitted when a error that Minyami can't handle happens.
Contribution
Minyami is developed with TypeScript. You need to install TypeScript Compiler before you start coding.
Install development dependencies
npm install -g typescript
git clone https://github.com/Last-Order/Minyami
cd Minyami
npm install
To build the project, just run tsc
.
Copyright
Open-sourced under GPLv3. © 2018-2023, Eridanus Sora, member of MeowSound Idols.