Metadata

Variables

Streamlink supports a number of metadata variables that can be used in the following CLI arguments:

Metadata variables are surrounded by curly braces and can be escaped by doubling the curly brace characters, eg. {variable} and {{not-a-variable}}.

The availability of each variable depends on the used plugin and whether that plugin supports this kind of metadata. If a variable is unsupported or not available, then its substitution will either be a short placeholder text (--title) or an empty string (--output, --record, --record-and-pipe).

The --json argument always lists the standard plugin metadata: id, author, category and title.

Variable

Description

id

The unique ID of the stream, eg. an internal numeric ID or randomized string.

plugin

The plugin name. See Plugins for the name of each built-in plugin.

title

The stream's title, usually a short descriptive text.

author

The stream's author, eg. a channel or broadcaster name.

category

The stream's category, eg. the name of a game being played, a music genre, etc.

game

Alias for category.

url

The resolved URL of the stream.

time

The current timestamp. Can optionally be formatted via {time:format}.

The format parameter string is passed to Python's datetime.strftime() method, so all the usual time directives are available.

The default format is %Y-%m-%d_%H-%M-%S.

Examples

$ streamlink --title "{author} - {category} - {title}" <URL> [STREAM]
$ streamlink --output "~/recordings/{author}/{category}/{id}-{time:%Y%m%d%H%M%S}.ts" <URL> [STREAM]