TwitchClipper
TwitchClipper is a .NET 5.0 cross platform compatible application, made to download https://twitch.tv clips. Downloading is done via youtube-dl, which will automatically be downloaded and saved in the project's folder.
Head over to the Wiki to find some documentation on various topics.
Features
- Custom save path expressions
- Allows you to save a clip in the exact location you want AND in your own language
- Save ALL clips (no limit)
- Many clip downloaders out there, can only download about 1000 clips before being throttled by Twitch. TwitchClipper has bypassed that limitation!
- Skip download if a file with the same name exists
Installation
Head over to the Wiki to find the installation steps (IT'S REALLY EASY): https://github.com/mortenmoulder/TwitchClipper/wiki/Installation
Configuration
appsettings.json contains all the things you need to change, in order to start using TwitchClipper.
There's a section called TwitchConfiguration you need to modify:
"TwitchConfiguration": {
"ClientID": "CLIENT_ID_GOES_HERE",
"ClientSecret": "CLIENT_SECRET_GOES_HERE",
"DownloadThreads": 5
}- Go to https://dev.twitch.tv/console and create your app
- Go to your app and find the Client ID and generate a new secret
- Replace
CLIENT_ID_GOES_HEREandCLIENT_SECRET_GOES_HEREwith your newly copied values
DownloadThreads spawns x amount of youtube-dl instances. The higher the number, the faster your download will be. I do not recommend going over 10, as you might get throttled by Twitch.
Optionally you can also modify the Download section, if you want to customize where your clips are saved:
"Download": {
"SavePathExpression": "/{broadcaster_name}/{yyyy}-{MM}-{dd}/{id}.mp4",
"Locale": "en-US"
}Few minor things
This is my first published .NET app. I'm a web developer, so please bear 🐻 with me.
- If you ever need to get the new version of this, you simply need to do
git pullfollowed by the longdotnet publish .....command. - Edit appsettings.json BEFORE you run the
dotnet build/publishcommands. The file will automatically get copied to thepublishfolder - When the authentication token has been generated, it will be stored in the new appsettings.json file in the publish folder (which will be overwritten next time you build)
TODO:
Custom input on how you want the folder structure to be. Currently it's USERNAME\YEAR\MONTH\DAY\CLIP_TITLE (aka "slug")- Clean up some of the messy "if linux or osx then"-code
- Make the -u argument optional, and introduce some kind of flag you can set, that downloads from a list of users in appsettings.json
- Error handling (pff works on my machine)
- DOCKER CONTAINER
someone please see if it works on osx pleaseTHANK YOU @mauranCheck if file exists before overwriting it (waste of time)- Somehow allow the user to determine how many videos they want (filtering, basically). Not everyone wants every video
Refactor to Helix API instead of Kraken, which apparently was newer- Make releases!