quvi-dump(1) The dull-witted property printer


quvi dump [OPTIONS] [ARGS]


This command queries the properties for an URL and prints them to the stdout.


The command will attempt to determine if any of the libquvi-scripts(7) accept the input URL before exiting with an error. The script type {playlist,media,...} determines how the command will handle the input URL.

Playlist URLs

The playlist properties (media URLs) are printed in the "rfc2483" format.

Media URLs

The media properties will be printed in the "enum" format.

Available {subtitles,streams}

Printed in the "rfc2483" format.

The --print-format may be used to change the default behaviour.


The support for the media hosts is determined by the current selection of libquvi-scripts(7).


See quvirc(5) for more information about the groups and the variables that quvi parses.


The command will read stdin by default. The input is expected to contain URLs. The command arguments are expected to be either URLs or file paths. If the input is read from either stdin or a file, the contents are read as RFC2483.



-o, --check-mode-offline

Do not resolve URL redirections before passing the URL to the libquvi-scripts(7) to determine whether the URL is accepted by any of the scripts.

config: core.check-mode-offline=<boolean>

-B, --print-subtitles

Query and print the available media subtitles. See also --print-format.

-S, --print-streams

Query and print the available media streams. See also --print-format.

-l, --subtitle-language PATTERN[,PATTERN,...]

Match a subtitle language using a regex PATTERN. The value may be a comma-separated list of regex PATTERNs (left-to-right order) that are matched against the available selection.

The value may also contain the reserved keyword croak which will cause libquvi(3) to exit with an error when reached.


The first available subtitle language will be chosen if nothing matched the PATTERN

config: core.subtitle-language=<PATTERN[,PATTERN,...]>

-s, --stream PATTERN[,PATTERN,...]

Match a stream using a regex PATTERN. The value may be a comma-separated list of regex PATTERNs (left-to-right order) that are matched against the available selection.

The value may contain the following reserved keywords:

croak - instructs libquvi(3) to exit with an error when reached

best - instructs libquvi(3) to choose the best quality stream

The best quality is determined by the libquvi-scripts(7) by comparing the media quality properties, e.g. the video height property, although the actual method may vary depending on the data provided by the media hosting service.


The first available stream is selected if nothing matched

config: core.stream=<PATTERN[,PATTERN,...]>

-p, --print-format FORMAT (default: varies)

Specify the format in which the properties should be printed. The command uses a different default value for this, depending on the input URL. FORMAT may be one of the following values:


json - available only if quvi was built with JsonGLib


xml - available only if quvi was built with libxml


The default value varies, see DEFAULT BEHAVIOUR.

config: core.print-format=<FORMAT>

-b, --verbosity LEVEL (default: verbose)

Specify the verbosity level of the command. LEVEL may be:

debug - verbose + enable verbose output for libcurl (CURLOPT_VERBOSE)

verbose - default

quiet - errors only

mute - nothing at all

config: core.verbosity=<LEVEL>


-q, --query-metainfo

Instruct the command to query the HTTP metainfo properties, namely Content-{Length,Type}. This will cause libquvi(3) to send an HTTP HEAD request for each HTTP media stream URL and parse the returned data. When used, the command will include these properties to the printed media properties.

config: dump.query-metainfo=<boolean>


-A, --exec-dump-argv

Print the argument array used to execute the child program.

config: exec.dump-argv=<boolean>

-E, --exec-enable-stderr

Do not discard child program's standard error.

config: exec.enable-stderr=<boolean>

-O, --exec-enable-stdout

Do not discard child program's standard output.

config: exec.enable-stdout=<boolean>

-e, --exec COMMAND

Execute a child program asynchoronously after parsing the media properties. COMMAND may contain any of the following property sequences. Each occurence will be replaced by the command before the COMMAND is executed:

%s  Media property: start time (ms)
%T  Media property: thumbnail URL
%d  Media property: duration (ms)
%u  Media stream property: URL
%I  Media stream property: ID
%t  Media property: title
%i  Media property: ID
%e  File extension[1]
%f  Path to the saved media file[2]

[1]: The file extension is parsed from the HTTP content-type header.
     quvi-get(1) replaces this sequence with HTTP media streams only.
     quvi-dump(2) replaces it only when --query-metainfo is used with
     HTTP media streams.

[2]: This sequence is unique to quvi-get(1)

This option may be specified multiple times. In the quvirc(5) file, specify the commands in a comma-separated list.

config: exec.external=<COMMAND[,COMMAND,...]>


-c, --enable-cookies

Have libcurl parse the received cookies and use them in the subsequent HTTP requests.

config: http.enable-cookies=<boolean>

-u, --user-agent USERAGENT (default: Mozilla/5.0)

Identify as USERAGENT to the HTTP server.


libquvi-scripts(7) may override this value

config: http.user-agent=<USERAGENT>


• Print media properties in XML:

$ quvi dump -p xml MEDIA_URL

• Execute a child program:

$ quvi dump -e "totem %u" MEDIA_URL

• Print playlist properties in JSON:

$ quvi dump -p json PLAYLIST_URL

• Print available subtitles in JSON:

$ quvi dump -p json -B MEDIA_URL

• Print available media streams:

$ quvi dump -S MEDIA_URL

• Query media properties for each playlist item:

$ quvi dump PLAYLIST_URL | quvi dump


See quvi(1)


Either EXIT_SUCCESS or EXIT_FAILURE. The actual value depends on the platform, on POSIX systems they are 0 (success) and 1 (failure).




Development code





Toni Gundogdu <[email protected]>



Report bugs to the quvi-devel mailing list <[email protected]> where the development and the maintenance is primarily done. You do not have to be subscribed to the list to send a message there.


quvi is Free Software licensed under the GNU Affero GPLv3+


Part of the quvi(1) suite