├── .editorconfig ├── .github └── workflows │ └── tests.yaml ├── .gitignore ├── .prettierrc ├── .vscode └── settings.json ├── DOWNLOAD_PRIVATE_VIDEOS.md ├── README.md ├── images └── twitchtracker-console.png ├── package.json ├── pnpm-lock.yaml ├── src ├── api │ ├── sullygnome.ts │ └── twitch.ts ├── commands │ ├── downloadByChannelLogin.ts │ ├── downloadByStatsService.ts │ ├── downloadByVideoId.ts │ ├── downloadByVodPath.ts │ ├── downloadClip.ts │ ├── mergeFragments.ts │ ├── showHelp.ts │ └── showVersion.ts ├── constants.ts ├── downloaders │ ├── aria2c.ts │ ├── curl.ts │ ├── fetch.ts │ └── index.ts ├── lib │ ├── chalk.ts │ ├── groupBy.ts │ ├── hlsParser.mock.md │ ├── hlsParser.test.ts │ ├── hlsParser.ts │ ├── isFMp4MediaFile.ts │ ├── isInstalled.ts │ ├── isMp4File.ts │ ├── isTsFile.ts │ ├── spawn.ts │ ├── statsOrNull.ts │ ├── throttleTransform.ts │ └── unlinkIfAny.ts ├── main.ts ├── merge │ ├── append.ts │ ├── ffconcat.ts │ └── index.ts ├── stats.ts ├── types.ts └── utils │ ├── args │ ├── getDownloader.ts │ ├── normalizeArgs.ts │ ├── parseDownloadSectionsArg.test.ts │ ├── parseDownloadSectionsArg.ts │ └── parseLink.ts │ ├── downloadFrag.ts │ ├── downloadVideo.ts │ ├── downloadWithStreamlink.ts │ ├── fetchText.ts │ ├── getDlFormat.ts │ ├── getExistingFrags.ts │ ├── getFragsForDownloading.ts │ ├── getLiveVideoInfo.ts │ ├── getPath.ts │ ├── getTryUnmute.ts │ ├── getUnmutedFrag.ts │ ├── getVideoFormats.ts │ ├── getVideoInfo.ts │ ├── getWhyCannotDownload.ts │ ├── parseDownloadFormats.ts │ ├── processUnmutedFrags.ts │ ├── readOutputDir.ts │ ├── showFormats.ts │ └── showProgress.ts ├── tsconfig.json └── twitch-dlp.js /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/workflows/tests.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/.github/workflows/tests.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/.prettierrc -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /DOWNLOAD_PRIVATE_VIDEOS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/DOWNLOAD_PRIVATE_VIDEOS.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/README.md -------------------------------------------------------------------------------- /images/twitchtracker-console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/images/twitchtracker-console.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/package.json -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/api/sullygnome.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/api/sullygnome.ts -------------------------------------------------------------------------------- /src/api/twitch.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/api/twitch.ts -------------------------------------------------------------------------------- /src/commands/downloadByChannelLogin.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/commands/downloadByChannelLogin.ts -------------------------------------------------------------------------------- /src/commands/downloadByStatsService.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/commands/downloadByStatsService.ts -------------------------------------------------------------------------------- /src/commands/downloadByVideoId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/commands/downloadByVideoId.ts -------------------------------------------------------------------------------- /src/commands/downloadByVodPath.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/commands/downloadByVodPath.ts -------------------------------------------------------------------------------- /src/commands/downloadClip.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/commands/downloadClip.ts -------------------------------------------------------------------------------- /src/commands/mergeFragments.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/commands/mergeFragments.ts -------------------------------------------------------------------------------- /src/commands/showHelp.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/commands/showHelp.ts -------------------------------------------------------------------------------- /src/commands/showVersion.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/commands/showVersion.ts -------------------------------------------------------------------------------- /src/constants.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/constants.ts -------------------------------------------------------------------------------- /src/downloaders/aria2c.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/downloaders/aria2c.ts -------------------------------------------------------------------------------- /src/downloaders/curl.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/downloaders/curl.ts -------------------------------------------------------------------------------- /src/downloaders/fetch.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/downloaders/fetch.ts -------------------------------------------------------------------------------- /src/downloaders/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/downloaders/index.ts -------------------------------------------------------------------------------- /src/lib/chalk.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/lib/chalk.ts -------------------------------------------------------------------------------- /src/lib/groupBy.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/lib/groupBy.ts -------------------------------------------------------------------------------- /src/lib/hlsParser.mock.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/lib/hlsParser.mock.md -------------------------------------------------------------------------------- /src/lib/hlsParser.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/lib/hlsParser.test.ts -------------------------------------------------------------------------------- /src/lib/hlsParser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/lib/hlsParser.ts -------------------------------------------------------------------------------- /src/lib/isFMp4MediaFile.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/lib/isFMp4MediaFile.ts -------------------------------------------------------------------------------- /src/lib/isInstalled.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/lib/isInstalled.ts -------------------------------------------------------------------------------- /src/lib/isMp4File.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/lib/isMp4File.ts -------------------------------------------------------------------------------- /src/lib/isTsFile.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/lib/isTsFile.ts -------------------------------------------------------------------------------- /src/lib/spawn.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/lib/spawn.ts -------------------------------------------------------------------------------- /src/lib/statsOrNull.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/lib/statsOrNull.ts -------------------------------------------------------------------------------- /src/lib/throttleTransform.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/lib/throttleTransform.ts -------------------------------------------------------------------------------- /src/lib/unlinkIfAny.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/lib/unlinkIfAny.ts -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/main.ts -------------------------------------------------------------------------------- /src/merge/append.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/merge/append.ts -------------------------------------------------------------------------------- /src/merge/ffconcat.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/merge/ffconcat.ts -------------------------------------------------------------------------------- /src/merge/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/merge/index.ts -------------------------------------------------------------------------------- /src/stats.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/stats.ts -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/types.ts -------------------------------------------------------------------------------- /src/utils/args/getDownloader.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/args/getDownloader.ts -------------------------------------------------------------------------------- /src/utils/args/normalizeArgs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/args/normalizeArgs.ts -------------------------------------------------------------------------------- /src/utils/args/parseDownloadSectionsArg.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/args/parseDownloadSectionsArg.test.ts -------------------------------------------------------------------------------- /src/utils/args/parseDownloadSectionsArg.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/args/parseDownloadSectionsArg.ts -------------------------------------------------------------------------------- /src/utils/args/parseLink.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/args/parseLink.ts -------------------------------------------------------------------------------- /src/utils/downloadFrag.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/downloadFrag.ts -------------------------------------------------------------------------------- /src/utils/downloadVideo.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/downloadVideo.ts -------------------------------------------------------------------------------- /src/utils/downloadWithStreamlink.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/downloadWithStreamlink.ts -------------------------------------------------------------------------------- /src/utils/fetchText.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/fetchText.ts -------------------------------------------------------------------------------- /src/utils/getDlFormat.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/getDlFormat.ts -------------------------------------------------------------------------------- /src/utils/getExistingFrags.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/getExistingFrags.ts -------------------------------------------------------------------------------- /src/utils/getFragsForDownloading.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/getFragsForDownloading.ts -------------------------------------------------------------------------------- /src/utils/getLiveVideoInfo.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/getLiveVideoInfo.ts -------------------------------------------------------------------------------- /src/utils/getPath.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/getPath.ts -------------------------------------------------------------------------------- /src/utils/getTryUnmute.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/getTryUnmute.ts -------------------------------------------------------------------------------- /src/utils/getUnmutedFrag.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/getUnmutedFrag.ts -------------------------------------------------------------------------------- /src/utils/getVideoFormats.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/getVideoFormats.ts -------------------------------------------------------------------------------- /src/utils/getVideoInfo.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/getVideoInfo.ts -------------------------------------------------------------------------------- /src/utils/getWhyCannotDownload.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/getWhyCannotDownload.ts -------------------------------------------------------------------------------- /src/utils/parseDownloadFormats.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/parseDownloadFormats.ts -------------------------------------------------------------------------------- /src/utils/processUnmutedFrags.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/processUnmutedFrags.ts -------------------------------------------------------------------------------- /src/utils/readOutputDir.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/readOutputDir.ts -------------------------------------------------------------------------------- /src/utils/showFormats.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/showFormats.ts -------------------------------------------------------------------------------- /src/utils/showProgress.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/src/utils/showProgress.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/tsconfig.json -------------------------------------------------------------------------------- /twitch-dlp.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DmitryScaletta/twitch-dlp/HEAD/twitch-dlp.js --------------------------------------------------------------------------------