{"id":13620893,"url":"https://github.com/lay295/TwitchDownloader","last_synced_at":"2025-04-14T22:32:51.042Z","repository":{"id":37951363,"uuid":"204367833","full_name":"lay295/TwitchDownloader","owner":"lay295","description":"Twitch VOD/Clip Downloader - Chat Download/Render/Replay","archived":false,"fork":false,"pushed_at":"2025-04-09T13:50:54.000Z","size":30951,"stargazers_count":3087,"open_issues_count":190,"forks_count":276,"subscribers_count":35,"default_branch":"master","last_synced_at":"2025-04-10T12:40:28.120Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lay295.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2019-08-26T00:45:50.000Z","updated_at":"2025-04-09T23:37:50.000Z","dependencies_parsed_at":"2023-09-24T06:29:56.132Z","dependency_job_id":"4a1718e9-eaad-4c22-ae5c-a071cf5c2915","html_url":"https://github.com/lay295/TwitchDownloader","commit_stats":{"total_commits":830,"total_committers":47,"mean_commits":"17.659574468085108","dds":"0.40963855421686746","last_synced_commit":"cb805e95bdf5616c94c2d6525e39a6537bd89b4b"},"previous_names":[],"tags_count":102,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lay295%2FTwitchDownloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lay295%2FTwitchDownloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lay295%2FTwitchDownloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lay295%2FTwitchDownloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lay295","download_url":"https://codeload.github.com/lay295/TwitchDownloader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248972436,"owners_count":21191794,"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":[],"created_at":"2024-08-01T21:01:00.433Z","updated_at":"2025-04-14T22:32:51.033Z","avatar_url":"https://github.com/lay295.png","language":"C#","funding_links":[],"categories":["C# #"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/lay295/TwitchDownloader\"\u003e\n    \u003cimg src=\"TwitchDownloaderWPF/Images/Logo.png\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n  \u003c/a\u003e\n  \u003ch3 align=\"center\"\u003eTwitch Downloader\u003c/h3\u003e\n  \u003cdiv align=\"center\"\u003e\n    Twitch VOD/Clip/Chat Downloader and Chat Renderer\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/lay295/TwitchDownloader/issues\"\u003eReport Bug\u003c/a\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\nThis document is also available in:\n\n- [**Italian / Italiano**](README_it.md)\n- [**Japanese / 日本語**](README_ja.md)\n- [**Portuguese (Brazil) / Português (Brasil)**](README_pt-br.md)\n- [**Russian / Русский**](README_ru.md)\n- [**Spanish / Español**](README_es.md)\n- [**Turkish / Türkçe**](README_tr.md)\n- [**Simplified Chinese / 简体中文**](README_zh-cn.md)\n- [**Traditonal Chinese / 繁體中文**](README_zh-tw.md)\n\n## Chat Render Example\n\n\u003chttps://user-images.githubusercontent.com/1060681/197653099-c3fd12c2-f03a-4580-84e4-63ce3f36be8d.mp4\u003e\n\n## What can it do?\n\n- Download Twitch VODs\n- Download Twitch Clips\n- Download chat for VODs and Clips, in either a [JSON with all the original information](https://github.com/lay295/TwitchDownloader/files/13495494/ExampleMoonMoonJsonFile.json), a browser HTML file, or a [plain text file](https://github.com/lay295/TwitchDownloader/files/13495523/ExampleMoonMoonTextFile.txt)\n- Update the contents of a previously generated JSON chat file with an option to save as another format\n- Use a previously generated JSON chat file to render the chat with Twitter Twemoji or Google Noto Color emojis and BTTV, FFZ, 7TV static and animated emotes\n\n# GUI\n\n## Windows WPF\n\n![](https://i.imgur.com/bLegxGX.gif)\n\n### [See the full WPF documentation here](TwitchDownloaderWPF/README.md)\n\n### Functionality\n\nThe Windows WPF GUI implements all of the main functions of the program along with some extra quality of life functions:\n\n- Queue up multiple download/render jobs to run simultaneously\n- Create a list of download jobs from a list of vod/clip links\n- Search for and download multiple VODs/clips from any streamer without leaving the app\n\n### Multi-language Support\n\nThe Windows WPF GUI is available in multiple languages thanks to community translations. See the [Localization section](TwitchDownloaderWPF/README.md#localization) of the [WPF README](TwitchDownloaderWPF/README.md) for more details.\n\n### Theming\n\nThe Windows WPF GUI comes bundled with both light and dark themes, along with an option to update live according the current Windows theme. It also supports user created themes! See the [Theming section](TwitchDownloaderWPF/README.md#theming) of the [WPF README](TwitchDownloaderWPF/README.md) for more details.\n\n### Video Demonstration\n\n\u003chttps://www.youtube.com/watch?v=0W3MhfhnYjk\u003e\n(older version, same concept)\n\n## Linux?\n\nCheck twitch-downloader-gui on [github](https://github.com/mohad12211/twitch-downloader-gui) or on the [AUR](https://aur.archlinux.org/packages/twitch-downloader-gui) for a Linux GUI wrapper for the CLI.\n\n## MacOS?\n\nNo GUI is available for MacOS yet :(\n\n# CLI\n\n### [See the full CLI documentation here](TwitchDownloaderCLI/README.md)\n\nThe CLI is cross-platform and implements the main functions of the program. It works on Windows, Linux, and MacOS\u003csup\u003e*\u003c/sup\u003e.\n\n\u003csup\u003e*Only Intel Macs have been tested\u003c/sup\u003e\n\nWith the CLI, it is possible to automate video processing using external scripts. For example, you could copy-paste the following code into a `.bat` file on Windows to download a VOD and its chat, and then render the chat, all from a single input.\n\n```bat\n@echo off\nset /p vodid=\"Enter VOD ID: \"\nTwitchDownloaderCLI.exe videodownload --id %vodid% --ffmpeg-path \"ffmpeg.exe\" -o %vodid%.mp4\nTwitchDownloaderCLI.exe chatdownload --id %vodid% -o %vodid%_chat.json -E\nTwitchDownloaderCLI.exe chatrender -i %vodid%_chat.json -h 1080 -w 422 --framerate 30 --update-rate 0 --font-size 18 -o %vodid%_chat.mp4\n```\n\n## Windows - Getting started\n\n1. Go to [Releases](https://github.com/lay295/TwitchDownloader/releases/) and download the latest version for Windows or [build from source](#building-from-source).\n2. Extract `TwitchDownloaderCLI.exe`.\n3. Browse to where you extracted the executable:\n\n```\ncd C:\\folder\\containing\\TwitchDownloaderCLI\n```\n\n4. If you do not have FFmpeg, you can install it via [Chocolatey package manager](https://community.chocolatey.org/), or you can get it as a standalone file from [ffmpeg.org](https://ffmpeg.org/download.html) or by using TwitchDownloaderCLI:\n\n```\nTwitchDownloaderCLI.exe ffmpeg --download\n```\n\n5. You can now start using TwitchDownloaderCLI, for example:\n\n```\nTwitchDownloaderCLI.exe videodownload --id \u003cvod-id-here\u003e -o out.mp4\n```\n\nYou can find more example commands in the [CLI README](TwitchDownloaderCLI/README.md#example-commands).\n\n## Linux – Getting started\n\n1. Some distros, like Linux Alpine, lack fonts for some languages (Arabic, Persian, Thai, etc.) If this is the case for you, install additional fonts families such as [Noto](https://fonts.google.com/noto/specimen/Noto+Sans) or check your distro's wiki page on fonts as it may have an install command for this specific scenario, such as the [Linux Alpine](https://wiki.alpinelinux.org/wiki/Fonts) font page.\n2. Ensure both `fontconfig` and `libfontconfig1` are installed. `apt-get install fontconfig libfontconfig1` on Ubuntu.\n3. Go to [Releases](https://github.com/lay295/TwitchDownloader/releases/) and download the latest binary for Linux, grab the [AUR Package](https://aur.archlinux.org/packages/twitch-downloader-bin/) for Arch Linux, or [build from source](#building-from-source).\n4. Extract `TwitchDownloaderCLI`.\n5. Browse to where you extracted the binary:\n\n```\ncd directory/containing/TwitchDownloaderCLI\n```\n\n6. Give the binary executable rights:\n\n```\nsudo chmod +x TwitchDownloaderCLI\n```\n\n7. a) If you do not have FFmpeg, you should install it system-wide via your distro package manager, however you can also get it as a standalone file from [ffmpeg.org](https://ffmpeg.org/download.html) or by using TwitchDownloaderCLI:\n\n```\n./TwitchDownloaderCLI ffmpeg --download\n```\n\n7. b) If downloaded as a standalone file, you must also give it executable rights with:\n\n```\nsudo chmod +x ffmpeg\n```\n\n8. You can now start using TwitchDownloaderCLI, for example:\n\n```\n./TwitchDownloaderCLI videodownload --id \u003cvod-id-here\u003e -o out.mp4\n```\n\nYou can find more example commands in the [CLI README](TwitchDownloaderCLI/README.md#example-commands).\n\n## MacOS – Getting started\n\n1. If your device has an Apple Silicon M-series processor, ensure that you download the arm64 binary, however if you would like to use the x64 binary on Apple Silicon it must be run via a terminal session running under Rosetta 2:\n\n```\narch -x86_64 zsh\n```\n\n2. Go to [Releases](https://github.com/lay295/TwitchDownloader/releases/) and download the latest binary for MacOS or [build from source](#building-from-source).\n3. Extract `TwitchDownloaderCLI`.\n4. Browse to where you extracted the binary:\n\n```\ncd directory/containing/TwitchDownloaderCLI\n```\n\n5. Give the binary executable rights in the terminal:\n\n```\nchmod +x TwitchDownloaderCLI\n```\n\n6. a) If you do not have FFmpeg, you can install it system-wide via the [Homebrew package manager](https://brew.sh/), or you can get it as a standalone file from [ffmpeg.org](https://ffmpeg.org/download.html) or by using TwitchDownloaderCLI:\n\n```\n./TwitchDownloaderCLI ffmpeg --download\n```\n\n6. b) If downloaded as a standalone file, you must also give it executable rights with:\n\n```\nchmod +x ffmpeg\n```\n\n7. You can now start using TwitchDownloaderCLI, for example:\n\n```\n./TwitchDownloaderCLI videodownload --id \u003cvod-id-here\u003e -o out.mp4\n```\n\nYou can find more example commands in the [CLI README](TwitchDownloaderCLI/README.md#example-commands).\n\n# Building from source\n\n## Requirements\n\n- [.NET 6.0.x SDK](https://dotnet.microsoft.com/en-us/download/dotnet/6.0)\n- About 1GB of disk space\n\n## Build Instructions\n\n1. Clone the repository:\n\n```\ngit clone https://github.com/lay295/TwitchDownloader.git\n```\n\n2. Navigate to the solution folder:\n\n```\ncd TwitchDownloader\n```\n\n3. Restore the solution:\n\n```\ndotnet restore\n```\n\n- Non-Windows devices may need to explicitly specify a project to restore, i.e. `dotnet restore TwitchDownloaderCLI`\n\n4. a) Build the GUI:\n\n```\ndotnet publish TwitchDownloaderWPF -p:PublishProfile=Windows\n```\n\n4. b) Build the CLI:\n\n```\ndotnet publish TwitchDownloaderCLI -p:PublishProfile=\u003cProfile\u003e\n```\n\n- Applicable Profiles: `Windows`, `Linux`, `LinuxAlpine`, `LinuxArm`, `LinuxArm64`, `MacOS`, `MacOSArm64`\n\n5. a) Navigate to the GUI build folder:\n\n```\ncd TwitchDownloaderWPF/bin/Release/net6.0-windows/publish/win-x64\n```\n\n5. b) Navigate to the CLI build folder:\n\n```\ncd TwitchDownloaderCLI/bin/Release/net6.0/publish\n```\n\n# Third Party Credits\n\nChat Renders are rendered with [SkiaSharp](https://github.com/mono/SkiaSharp) and [HarfBuzzSharp](https://github.com/mono/SkiaSharp) © Microsoft Corporation.\n\nChat Renders are encoded and Video Downloads are finalized with [FFmpeg](https://ffmpeg.org/) © The FFmpeg developers.\n\nChat Renders may use [Noto Color Emoji](https://github.com/googlefonts/noto-emoji) © Google and contributors.\n\nChat Renders may use [Twemoji](https://github.com/twitter/twemoji) © Twitter and contributors.\n\nBundled FFmpeg binaries are fetched from [gyan.dev](https://www.gyan.dev/ffmpeg/) © Gyan Doshi.\n\nFFmpeg binaries fetched are runtime are downloaded using [Xabe.FFmpeg.Downloader](https://github.com/tomaszzmuda/Xabe.FFmpeg) © Xabe.\n\nChat Html exports utilize the _Inter_ typeface hosted by the [Google Fonts API](https://fonts.google.com/) © Google.\n\nFor a full list of utilized external libraries, see [THIRD-PARTY-LICENSES.txt](./TwitchDownloaderCore/Resources/THIRD-PARTY-LICENSES.txt).\n\n# License\n\n[MIT](./LICENSE.txt)\n\nTwitchDownloader is in no way associated with Twitch Interactive, Inc. or its affiliates.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flay295%2FTwitchDownloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flay295%2FTwitchDownloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flay295%2FTwitchDownloader/lists"}