Twitch Chat Downloader 
Neat python script to download chat messages from past broadcasts
Requirements
Installation and usage
There are multiple ways to install this script.
# Install package with pip
pip3 install tdh-tcd
python3 -m tcd <video_id>
# Run pip3 as root to install `tcd` for all users (not recommended)
sudo pip3 install tdh-tcd
tcd <video_id>
# Start script directly from cloned repository
git clone https://github.com/TheDrHax/Twitch-Chat-Downloader.git
cd Twitch-Chat-Downloader
pip install -r requirements.txt
python -m tcd <video_id>
# or ...
python app.py <video_id>
Settings
To override default options, run python -m tcd --generate-config and edit generated settings.json or just use console arguments listed below.
| Option | Type | Argument | Description |
|---|---|---|---|
| client_id | str | --client-id |
Twitch API Client-ID header. |
| cooldown | int | --cooldown |
Delay (in milliseconds) between API calls. |
| display_progress | bool | --[no-]progress |
Display animated progress bar in terminal. |
| formats | str[] | -f/--formats |
List of formats to download. See Formats table below. |
| directory | str | -t/--directory |
Name of directory to save all generated files. |
| filename_format | str | --filename-format |
Full format of generated filenames. Possible arguments: directory, video_id and format. |
| max_width | int | --max-width |
Add line breaks to fit messages into specified width. Note: Implemented only for SSA/ASS subtitles. |
| subtitle_duration | int | --subtitle-duration |
Duration (in seconds) of each line of subtitles. |
| dynamic_duration | obj | Convert Kappa Kappa Kappa to Kappa x3. |
|
| —.enabled | bool | --[no-]dynamic-duration |
Increase subtitle duration based on message length. |
| —.max | int | --dynamic-duration-max |
Maximum duration of subtitle message. |
| —.max_length | int | --dynamic-duration-max-length |
Maximum length of subtitle message. |
| group_repeating_emotes | obj | Convert Kappa Kappa Kappa to Kappa x3. |
|
| —.enabled | bool | --[no-]group |
Enable or disable this function. |
| —.threshold | int | --group-threshold |
Number of repeating emotes to trigger this function. |
| —.collocations | int | --group-collocations |
Maximum number of words in repeating collocations (default: 1, more is slower). |
| —.collocations_threshold | int | --group-collocations-threshold |
Same logic as in —.threshold, but applies only to repeating collocations. |
| —.format | str | --group-format |
Customize format of replaced emotes. |
| video_types | str | --video-types |
Comma-separated list of VOD types to detect in Channel Mode. (see broadcast_type) |
Formats
| Format | Description |
|---|---|
ass or ssa |
Advanced SubStation Alpha |
srt |
SubRip |
irc |
IRC-style log |
Notes
- Empty messages means the user has been timed out. There's no known way to get these.
- This script is using Twitch's API v5 that is deprecated.
- Consider increasing the delay between API calls in
settings.jsonto avoid a potential temporary block from Twitch for sending too many requests when downloading messages from very long streams.
Metadata
Release files for tdh-tcd 2.4.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| tdh-tcd-2.4.8.tar.gz | 10.0 kB | Without provenance | Details for tdh-tcd-2.4.8.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tdh_tcd-2.4.8-py3-none-any.whl | Python 3 | none | any | Details for tdh_tcd-2.4.8-py3-none-any.whl |
Total release size: 21.4 kB
Release files / tdh-tcd-2.4.8.tar.gz
| Download URL | tdh-tcd-2.4.8.tar.gz |
|---|---|
| Size | 10.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
baa16821dd9315243243d7366f7e2337470ac93d513ff4822feee8696b9b4d46
|
|
BLAKE2b-256 checksum How to use checksums |
08f0df2ae0121e6037e87dfaba26da9259b6e9ad293705bb401cd7a1c664faea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5
|
Release files / tdh_tcd-2.4.8-py3-none-any.whl
| Download URL | tdh_tcd-2.4.8-py3-none-any.whl |
|---|---|
| Size | 11.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eb7cc344db9bfe1f105a94371daf34e13dd6ee90c7995eaeb8ef6781016571f7
|
|
BLAKE2b-256 checksum How to use checksums |
7b362bc64dd428e5bd46d9188576ed22bd422dd548300e97e1af539c77308e8b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5
|
Security for tdh-tcd 2.4.8
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.