Twitch-archiver

Latest version: v4.4.0

Safety actively analyzes 723158 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 6

2.1

**Additions:**
* TA can now be launched in 'watch' mode, checking for new streams/vods for a specified channel every 10 seconds.

**Changes and Fixes:**
* Fixed stream downloader loop missing parts if the processing time and wait period exceeded the time vod parts were advertised by Twitch.
* Streams with variable length segments will only be downloaded via the VOD downloader as the stream downloader cannot combine them reliably.
* Added typing to some arguments.

2.0

For the past few ~~weeks~~ months I've been working to completely refactor the code as the original v1.0 was built when I was just beginning to understand Python - this lead to various issues with code standardization, cleanliness and the foundational logic of the code which made it increasingly difficult to track down bugs and add new features.

And so I've created version 2.0, following better guidelines, formatting and vastly improving the cleanliness and readability of the code. This isn't to say it's perfect, I am still learning and open to any feedback.

With all that said, I've tried to test this code as much as possible - but with the amount of changes and additions there still may be bugs.

A quick note for anyone who used any of the beta releases, many things have changed during the course of development, and I would strongly recommend re-downloading any VODs downloaded with these beta versions as they may be incomplete or contain errors.

**What's new:**
* New video and chat download methods:
* Improved speed and reliability.
* Better error handling.
* Less reliance on external sources in case Twitch makes any breaking changes.
* True live archiving is now implemented, with parts downloaded as they are streamed.
* Added a configuration file for storing secrets for reuse.
* Added progress bars to download, conversion and export of video files and chat logs.
* Added a check on run and command-line notification if a new update is released.
* A more verbose chat log is are now archived along with a readable version.
* Added the ability to choose the number of download threads with an argument '--threads'.
* Added the ability to archive individual (or multiple) VODs.
* Added the ability to archive multiple channels in one command.
* Added the ability to print the saved config.
* Added the ability to choose the downloaded stream resolution and framerate.
* Added error handling for VODs with segment discontinuities.
* Added the '--quiet' and '--debug' arguments.
* Added an option for logging to a file.
* Added a license (GNU Affero Public License).


**What's changed:**
* Variables can now be passed as arguments rather than via a file.
* OAuth token is saved in the configuration rather than a file.
* Implemented a new, more accurate method for determining whether a VOD is live or not.
* Transitioned to a single database for all archived channel VODs.
* Removed erroneous characters from VOD directory names.
* Modified database schema. See [this gist](https://gist.github.com/522bffef7bee7eb17c1eacbf1a35aadc) if you wish to migrate your TA v1.x database(s) to the new format and location. This needs to be done to seamlessly resume archiving channels.
* Repository renamed (twitch-vod-archiver -> twitch-archiver).
* Improved VOD length verification.
* Chat logs are now saved while archiving live VODs rather than after stream finishes.
* Greatly improved logging.
* Various minor fixes and improvements.
* Overhauled changelog and readme.
* Added minimum ffmpeg version (4.3.1)

1.3.1

* Fixed an issue with vods created very recently

1.3

* Fixed an issue with how the CHANNEL directory is created using the supplied CLI argument, which may not match with the name provided by Twitch. - Thanks to MambaBoyy for bringing this to my attention.
* If database access fails when trying to write VOD_INFO, a new file named '.vodinfo' will be created containing this information. This is very important if a VOD is deleted as the data may no longer be available.
* Fixed an issue if the script was run too soon after a channel goes live.
* Fixed an issue with the SendPushbullet function, where some calls were missing required information.
* Fixed an issue with where temporary files were stored on Windows.
* Fixed an issue with the vod duration not being properly updated for live downloads.
* Removed possible race condition with lock files.
* Fixed VOD download loop breaking at the wrong time.
* Fixed the VOD verification length which was using the original VOD length rather than currently downloaded length.
* Fixed an issue where a VOD would be processed twice if multiple instances of TVA run in parallel.
* Other minor changes and formatting adjustments.

1.2

This is a bit of an emergency patch as Twitch changed their API slightly (Although it's mostly my fault for using an unsupported method of authenticating against their API).
* Completely redid how authentication is done as Twitch blocked the previous method using twitch account credentials. The old APP_CLIENT_ID and APP_CLIENT_SECRET are now the CLIENT_ID and CLIENT_SECRET, and no other credentials are required now.
* Added some more notifications for various errors, and would highly recommend configuring pushbullet.
* Fixed the lock file not being removed if adding the VOD information to the VOD database was unsuccessful.
* Modified the README to fit the new authentication scheme.

1.1

Live streams can now be archived done by downloading the VOD as it currently stands and is still being updated, and adding new chunks as they are added to the VOD on twitch's servers.
A VOD locking system is also now in place; if a VOD archive fails with an error, the VOD will NOT be downloaded again until the error is resolved by the user, and lockfile manually removed. Lock files are in the CHANNEL directory, using the format '.(VOD_ID)', for example 'Z:\\twitch-archive\\Brisppy\\.lock.1025444786'.
I've spent quite a bit of time both working on and testing this new feature, there shouldn't be any major issues but if you do encounter any problems please create an issue, and I will try to resolve it ASAP.

Page 5 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.