{"id":13567791,"url":"https://github.com/Last-Order/Minyami","last_synced_at":"2025-04-04T02:33:00.687Z","repository":{"id":43890773,"uuid":"133964846","full_name":"Last-Order/Minyami","owner":"Last-Order","description":"A lovely video downloader for HLS videos","archived":false,"fork":false,"pushed_at":"2024-09-25T16:40:58.000Z","size":732,"stargazers_count":564,"open_issues_count":3,"forks_count":37,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-10-09T18:34:23.938Z","etag":null,"topics":["hls"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Last-Order.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://www.buymeacoffee.com/eridanus","https://afdian.net/@eridanus_sora"]}},"created_at":"2018-05-18T14:25:24.000Z","updated_at":"2024-09-30T16:27:08.000Z","dependencies_parsed_at":"2024-04-09T16:36:58.192Z","dependency_job_id":"8a3cf446-3bcc-4c83-bd03-e39d6493459c","html_url":"https://github.com/Last-Order/Minyami","commit_stats":{"total_commits":421,"total_committers":12,"mean_commits":"35.083333333333336","dds":"0.31591448931116395","last_synced_commit":"47489205d894907451e8459b9a15a22095e5e652"},"previous_names":[],"tags_count":104,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Last-Order%2FMinyami","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Last-Order%2FMinyami/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Last-Order%2FMinyami/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Last-Order%2FMinyami/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Last-Order","download_url":"https://codeload.github.com/Last-Order/Minyami/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247111444,"owners_count":20885435,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hls"],"created_at":"2024-08-01T13:02:43.320Z","updated_at":"2025-04-04T02:33:00.672Z","avatar_url":"https://github.com/Last-Order.png","language":"TypeScript","funding_links":["https://www.buymeacoffee.com/eridanus","https://afdian.net/@eridanus_sora"],"categories":["TypeScript","HLS","HarmonyOS"],"sub_categories":["Talks Presentations Podcasts","Windows Manager"],"readme":"# README\r\n\r\n[![Build Status](https://github.com/Last-Order/Minyami/workflows/Node%20CI/badge.svg)](https://github.com/Last-Order/Minyami/actions)\r\n\r\n[中文说明](readme.zh-cn.md)\r\n\r\n## Dependencies\r\n\r\n-   mkvmerge (optional, mkv output required)\r\n\r\n! Minyami requires Node Active/Maintenance LTS latest or Current latest. Active LTS is recommended. Details [here](https://nodejs.org/en/about/previous-releases).\r\n\r\nMake sure you had put the binary files into your system `PATH`.\r\n\r\n## Installation\r\n\r\n`npm -g i minyami` or `yarn global add minyami`\r\n\r\nPlease also install the following extension to work with Minyami\r\n\r\n1. Install Chrome extension (recommended): https://chrome.google.com/webstore/detail/minyami/cgejkofhdaffiifhcohjdbbheldkiaed (which is also open-sourced [here](https://github.com/Last-Order/Minyami-chrome-extension))\r\n\r\n## Usage\r\n\r\n```\r\nHelp:\r\n     Commands                      Description                   Alias\r\n\r\n     --help \u003ccommand\u003e              Show help documentation       -h\r\n         \u003ccommand\u003e                 Show help of a specified comma\r\n     --version                     Show version\r\n     --download \u003cinput_path\u003e       Download video                -d\r\n         \u003cinput_path\u003e              m3u8 file path\r\n         --threads \u003climit\u003e         Threads limit\r\n             \u003climit\u003e               (Optional) Limit of threads, defaults to 5\r\n         --retries \u003climit\u003e         Retry limit\r\n             \u003climit\u003e               (Optional) Limit of retry times\r\n         --output, o \u003cpath\u003e        Output path\r\n             \u003cpath\u003e                (Optional) Output file path, defaults to ./output.mkv\r\n         --temp-dir \u003cpath\u003e         Temporary file path\r\n             \u003cpath\u003e                (Optional) Temporary file path, defaults to env.TEMP\r\n         --key \u003ckey\u003e               Set key manually (Internal use)\r\n             \u003ckey\u003e                 (Optional) Key for decrypt video.\r\n         --cookies \u003ccookies\u003e       Cookies used to download\r\n             \u003ccookies\u003e\r\n         --headers, H \u003cheaders\u003e    HTTP Header used to download\r\n             \u003cheaders\u003e             Custom header. eg. \"User-Agent: xxxxx\". This option will override --cookies.\r\n         --live                    Download live\r\n         --format \u003cformat_name\u003e    (Optional) Set output format. default: ts\r\n             \u003cformat_name\u003e         Format name. ts or mkv.\r\n         --proxy \u003cproxy-server\u003e    Use the specified HTTP/HTTPS/SOCKS5 proxy\r\n             \u003cproxy-server\u003e        Set proxy in [protocol://\u003chost\u003e:\u003cport\u003e] format. eg. --proxy \"http://127.0.0.1:1080\".\r\n         --no-proxy                Disable reading proxy configuration from system environment variables or system settings.\r\n         --slice \u003crange\u003e           Download specified part of the stream\r\n             \u003crange\u003e               Set time range in [\u003chh:mm:ss\u003e-\u003chh:mm:ss\u003e format]. eg. --slice \"45:00-53:00\"\r\n         --no-merge                Do not merge m3u8 chunks.\r\n         --keep, k                 Keep temporary files.\r\n         --keep-encrypted-chunks   Do not delete encrypted chunks after decryption.\r\n         --chunk-naming-strategy   Temporary file naming strategy. Defaults to 1.\r\n     --resume \u003cinput_path\u003e         Resume a download. (Archive)  -r\r\n         \u003cinput_path\u003e              m3u8 file path\r\n     --clean                       Clean cache files\r\n\r\nOptions:\r\n\r\n     Options                       Description\r\n     --verbose, debug              Debug output\r\n```\r\n\r\n## FAQ\r\n\r\nQ: Should I keep the browser open when downloading?\r\n\r\nA: It's not necessary.\r\n\r\nQ: How to set proxy for Minyami?\r\n\r\nA: 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. And Minyami will read proxy settings from environment variables and Windows system proxy settings. To disable any proxy setting from context, you can add `--disable-proxy` or set `env.NO_PROXY` to and non-empty values.\r\n\r\n\r\nQ: How to set temporary file location?\r\n\r\nA: You can use `--temp-dir` to set the directory of temporary files.\r\n\r\nQ: How to set multiple HTTP headers?\r\n\r\nA: By providing multiple -H/--headers option. For example, `minyami -d xxxx -H \"Cookie: xxxx\" --headers \"User-Agent: yyy\"`.\r\n\r\n## Use as a library (3.1.0+)\r\n\r\n```TypeScript\r\nimport { ArchiveDownloader } from 'minyami';\r\nimport { LiveDownloader } from 'minyami';\r\n```\r\n\r\n### Event: `chunk-downloaded`\r\n\r\n-   `currentChunkInfo` `\u003cobject\u003e` The information of the chunk which is just downloaded.\r\n\r\nThe `'chunk-downloaded'` event is emitted when every media chunk is downloaded.\r\n\r\n### Event: `chunk-error`\r\n\r\n-   `error: Error`\r\n\r\nThe `'chunk-error'` event is emitted when failed to download or decrypt media chunks.\r\n\r\n### Event: `downloaded`\r\n\r\nThe `'downloaded'` event is emitted after all chunks are downloaded but before starting merge.\r\n\r\n### Event: `finished`\r\n\r\nThe `'finished'` event is emitted after all the works are done. CLI program exits after this event is emitted.\r\n\r\n### Event: `merge-error`\r\n\r\n-   `error: Error`\r\n\r\nThe `merge-error` event is emitted when a merge progress is failed.\r\n\r\n### Event: `critical-error`\r\n\r\n-   `error: Error`\r\n\r\nThe `critical-error` is emitted when a error that Minyami can't handle happens.\r\n\r\n## Contribution\r\n\r\nMinyami is developed with TypeScript. You need to install TypeScript Compiler before you start coding.\r\n\r\n**Install development dependencies**\r\n\r\n```\r\nnpm install -g typescript\r\ngit clone https://github.com/Last-Order/Minyami\r\ncd Minyami\r\nnpm install\r\n```\r\n\r\nTo build the project, just run `tsc`.\r\n\r\n## Copyright\r\n\r\nOpen-sourced under GPLv3. © 2018-2025, Eridanus Sora, member of MeowSound Idols.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLast-Order%2FMinyami","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLast-Order%2FMinyami","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLast-Order%2FMinyami/lists"}