Giter Site home page Giter Site logo

twitchdownloader's Introduction

Logo

Twitch Downloader

Twitch VOD/Clip/Chat Downloader and Chat Renderer

Report Bug

Chat Render Example

example.mp4

What can it do?

  • Download Twitch VODs
  • Download Twitch Clips
  • Download chat for VODs and Clips, in either a JSON with all the original information, a browser HTML file, or a plain text file
  • Update the contents of a previously generated JSON chat file with an option to save as another format
  • 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

GUI

Windows WPF

Functionality

The Windows WPF GUI implements all of the main functions of the program along with some extra quality of life functions:

  • Queue up multiple download/render jobs to run simultaneously
  • Create a list of download jobs from a list of vod/clip links
  • Search for and download multiple VODs/clips from any streamer without leaving the app

Multi-language Support

The Windows WPF GUI is available in multiple languages thanks to community translations. See the Localization section of the WPF README for more details.

Theming

The 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 of the WPF README for more details.

Video Demonstration

https://www.youtube.com/watch?v=0W3MhfhnYjk (older version, same concept)

Linux?

Check twitch-downloader-gui on github or on the AUR for a Linux GUI wrapper for the CLI.

MacOS?

No GUI is available for MacOS yet :(

CLI

The CLI is cross-platform and implements the main functions of the program. It works on Windows, Linux, and MacOS*.

*Only Intel Macs have been tested

With 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.

@echo off
set /p vodid="Enter VOD ID: "
TwitchDownloaderCLI.exe videodownload --id %vodid% --ffmpeg-path "ffmpeg.exe" -o %vodid%.mp4
TwitchDownloaderCLI.exe chatdownload --id %vodid% -o %vodid%_chat.json -E
TwitchDownloaderCLI.exe chatrender -i %vodid%_chat.json -h 1080 -w 422 --framerate 30 --update-rate 0 --font-size 18 -o %vodid%_chat.mp4

Windows - Getting started

  1. Go to Releases and download the latest version for Windows or build from source.
  2. Extract TwitchDownloaderCLI.exe.
  3. Browse to where you extracted the file in the terminal.
  4. If you do not have ffmpeg, you can install it via Chocolatey package manager, or you can get it as a standalone file from ffmpeg.org or by using TwitchDownloaderCLI:
TwitchDownloaderCLI.exe ffmpeg --download
  1. You can now start using the downloader, for example:
TwitchDownloaderCLI.exe videodownload --id <vod-id-here> -o out.mp4

Linux – Getting started

  1. 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 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 font page.
  2. Ensure both fontconfig and libfontconfig1 are installed. apt-get install fontconfig libfontconfig1 on Ubuntu.
  3. Go to Releases and download the latest binary for Linux, grab the AUR Package for Arch Linux, or build from source.
  4. Extract TwitchDownloaderCLI.
  5. Browse to where you extracted the file and give it executable rights in the terminal:
sudo chmod +x TwitchDownloaderCLI
  1. a) If you do not have ffmpeg, you should install it via your distro package manager, however you can also get it as a standalone file from ffmpeg.org or by using TwitchDownloaderCLI:
./TwitchDownloaderCLI ffmpeg --download
  1. b) If downloaded as a standalone file, you must also give it executable rights with:
sudo chmod +x ffmpeg
  1. You can now start using the downloader, for example:
./TwitchDownloaderCLI videodownload --id <vod-id-here> -o out.mp4

MacOS – Getting started

  1. Go to Releases and download the latest binary for MacOS or build from source.
  2. Extract TwitchDownloaderCLI.
  3. Browse to where you extracted the file and give it executable rights in the terminal:
chmod +x TwitchDownloaderCLI
  1. a) If you do not have ffmpeg, you can install it via Homebrew package manager, or you can get it as a standalone file from ffmpeg.org or by using TwitchDownloaderCLI:
./TwitchDownloaderCLI ffmpeg --download
  1. b) If downloaded as a standalone file, you must also give it executable rights with:
chmod +x ffmpeg
  1. You can now start using the downloader, for example:
./TwitchDownloaderCLI videodownload --id <vod-id-here> -o out.mp4

Building from source

Requirements

Build Instructions

  1. Clone the repository:
git clone https://github.com/lay295/TwitchDownloader.git
  1. Navigate to the solution folder:
cd TwitchDownloader
  1. Restore the solution:
dotnet restore
  1. a) Build the GUI:
dotnet publish TwitchDownloaderWPF -p:PublishProfile=Windows -p:DebugType=None -p:DebugSymbols=false
  1. b) Build the CLI:
dotnet publish TwitchDownloaderCLI -p:PublishProfile=<Profile> -p:DebugType=None -p:DebugSymbols=false
  • Applicable Profiles: Windows, Linux, LinuxAlpine, LinuxArm, LinuxArm64, MacOS
  1. a) Navigate to the GUI build folder:
cd TwitchDownloaderWPF/bin/Release/net6.0-windows/publish/win-x64
  1. b) Navigate to the CLI build folder:
cd TwitchDownloaderCLI/bin/Release/net6.0/publish

License

MIT

Credits

Noto Color Emoji © Google and contributors.

Twemoji © Twitter and contributors.

twitchdownloader's People

Contributors

algotaxelzon avatar choromanski avatar czompi avatar frozencure avatar geckon01 avatar goldbattle avatar hiumee avatar ilya-zlobintsev avatar insipidlight avatar is2511 avatar jab-dev avatar janpoonthong avatar lay295 avatar lucasfbn avatar martadinata666 avatar mohad12211 avatar n18abdel avatar nileinne avatar oondanomala avatar sancanella avatar scrubn avatar siuramka avatar slch avatar sunkhaskasis avatar teknoist avatar virodoran avatar xslash58 avatar yann-a avatar zigagrcar avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.