Command Line Usage¶
Overview¶
A full list of command line arguments can be obtained by running the help command:
$ chat_downloader -h
The output of which is as follows:
usage: chat_downloader [-h] [--version] [--start_time START_TIME]
[--end_time END_TIME]
[--message_types MESSAGE_TYPES | --message_groups MESSAGE_GROUPS]
[--max_attempts MAX_ATTEMPTS]
[--retry_timeout RETRY_TIMEOUT]
[--max_messages MAX_MESSAGES]
[--inactivity_timeout INACTIVITY_TIMEOUT]
[--timeout TIMEOUT] [--format FORMAT]
[--format_file FORMAT_FILE] [--chat_type {live,top}]
[--ignore IGNORE]
[--message_receive_timeout MESSAGE_RECEIVE_TIMEOUT]
[--buffer_size BUFFER_SIZE] [--output OUTPUT]
[--overwrite] [--sort_keys] [--indent INDENT]
[--pause_on_debug | --exit_on_debug]
[--logging {none,debug,info,warning,error,critical} | --testing | --verbose | --quiet]
[--cookies COOKIES] [--proxy PROXY]
url
A simple tool used to retrieve chat messages from livestreams, videos, clips
and past broadcasts. No authentication needed!
Mandatory Arguments:
url The URL of the livestream, video, clip or past
broadcast, defaults to None
General Arguments:
-h, --help show this help message and exit
--version show program's version number and exit
Timing Arguments:
--start_time START_TIME, -s START_TIME
Start time in seconds or hh:mm:ss, defaults to None
(as early as possible)
--end_time END_TIME, -e END_TIME
End time in seconds or hh:mm:ss, defaults to None
(until the end)
Message Type Arguments:
--message_types MESSAGE_TYPES
List of messages types to include, defaults to None
--message_groups MESSAGE_GROUPS
List of messages groups (a predefined, site-specific
collection of message types) to include
Retry Arguments:
--max_attempts MAX_ATTEMPTS
Maximum number of attempts to retrieve chat messages,
defaults to 15
--retry_timeout RETRY_TIMEOUT
Number of seconds to wait before retrying. Setting
this to a negative number will wait for user input.
Default is None (use exponential backoff, i.e.
immediate, 1s, 2s, 4s, 8s, ...)
Termination Arguments:
--max_messages MAX_MESSAGES
Maximum number of messages to retrieve, defaults to
None (unlimited)
--inactivity_timeout INACTIVITY_TIMEOUT
Stop getting messages after not receiving anything for
a certain duration (in seconds), defaults to None
--timeout TIMEOUT Stop retrieving chat after a certain duration (in
seconds), defaults to None
Format Arguments:
--format FORMAT Specify how messages should be formatted for printing,
defaults to the site's default value
--format_file FORMAT_FILE
Specify the path of the format file to choose formats
from, defaults to None
[Site Specific] YouTube Arguments:
--chat_type {live,top}
Specify chat type, defaults to 'live'
--ignore IGNORE Ignore a list of video ids, defaults to None
[Site Specific] Twitch Arguments:
--message_receive_timeout MESSAGE_RECEIVE_TIMEOUT
Time before requesting for new messages, defaults to
0.1
--buffer_size BUFFER_SIZE
Specify a buffer size for retrieving messages,
defaults to 4096
Output Arguments:
--output OUTPUT, -o OUTPUT
Path of the output file, defaults to None (print to
standard output)
--overwrite If True, overwrite output file. Otherwise, append to
the end of the file. Defaults to True. In both cases,
the file (and directories) is created if it does not
exist.
--sort_keys Sort keys when outputting to a file, defaults to True
--indent INDENT Number of spaces to indent JSON objects by. If
nonnumerical input is provided, this will be used to
indent the objects. Defaults to 4
Debugging/Testing Arguments:
--pause_on_debug Pause on certain debug messages, defaults to False
--exit_on_debug Exit when something unexpected happens, defaults to
False
--logging {none,debug,info,warning,error,critical}
Level of logging to display, defaults to 'none'
('info' if run from the CLI)
--testing Enable testing mode. This is equivalent to setting
logging to debug and enabling pause_on_debug. Defaults
to False
--verbose, -v Print various debugging information. This is
equivalent to setting logging to debug. Defaults to
False
--quiet, -q Activate quiet mode (hide all output), defaults to
False
Initialisation Arguments:
--cookies COOKIES, -c COOKIES
Path of cookies file, defaults to None
--proxy PROXY, -p PROXY
Use the specified HTTP/HTTPS/SOCKS proxy. To enable
SOCKS proxy, specify a proper scheme. For example
socks5://127.0.0.1:1080/. Pass in an empty string
(--proxy "") for direct connection. Defaults to None
Examples¶
Message groups and types
Options are specified by a space- or comma-separated list. If you specify more than one item, enclose the argument in quotation marks.
Using message groups:
$ chat_downloader https://www.youtube.com/watch?v=n5aQeLwwEns --message_groups "messages superchat"
Using message types:
$ chat_downloader https://www.youtube.com/watch?v=n5aQeLwwEns --message_types membership_item
Output to file
$ chat_downloader https://www.youtube.com/watch?v=n5aQeLwwEns --output chat.json