QUVI-DUMP(1)

πŸŽ€ NAME

quvi-dump β€” the dull-witted property printer πŸ’… (yes, that's its actual official title, and honestly? iconic of it to own that)


✨ SYNOPSIS

quvi dump [OPTIONS] [ARGS]

πŸ’– DESCRIPTION

Okay so bestie, here's the whole vibe: this command goes and asks for the properties of an URL, and then prints every single one of them straight to stdout. That's it. That's the job. πŸ¦‹


🌸 DEFAULT BEHAVIOUR

Before it bails out with an error, the command will try to figure out whether any of the libquvi-scripts(7) actually accept the input URL you handed it. Which script type it lands on β€” {playlist,media,...} β€” is what decides how it's gonna handle that URL.

  • Playlist URLs β€” the playlist properties (aka the media URLs) get printed in the "rfc2483" format.
  • Media URLs β€” the media properties get printed in the "enum" format.
  • Available {subtitles,streams} β€” printed in the "rfc2483" format.

And if you're not feeling those defaults? --print-format is right there to switch things up. ✨


πŸ¦‹ SUPPORT

Whether a media host is supported or not? That's fully determined by the current selection of libquvi-scripts(7). Not our call, not your call β€” the scripts decide. πŸ’…


πŸ’œ CONFIGURATION

Go read quvirc(5) if you want the tea on the groups and the variables that quvi parses. 🫢


πŸ“ INPUT

By default, the command reads stdin. That input is expected to contain URLs. The command arguments, meanwhile, are expected to be either URLs or file paths. And if the input comes from either stdin or a file, the contents get read as RFC2483. Oh and heads up β€” the input may contain file URIs. 🌈


πŸ’… OPTIONS

Core

  • -o, --check-mode-offline β€” do not resolve URL redirections before handing the URL over to libquvi-scripts(7) so it can 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. Peep --print-format too while you're at it. πŸ’–
  • -S, --print-streams β€” query and print the available media streams. Also see --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 *PATTERN*s (matched left-to-right) that get run against the available selection.

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

Note β€” 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 *PATTERN*s (left-to-right order) matched against the available selection.

The value may contain these 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 ngl, the actual method may vary depending on the data provided by the media hosting service. πŸ€·β€β™€οΈ

Note β€” the first available stream is selected if nothing matched.

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

  • -p, --print-format FORMAT (default: varies) β€” tell it which format the properties should be printed in. The command uses a different default value for this depending on the input URL. FORMAT may be one of:
    • enum
    • json β€” available only if quvi was built with JsonGLib
    • rfc2483
    • xml β€” available only if quvi was built with libxml
Note β€” the default value varies, see DEFAULT BEHAVIOUR.

config: core.print-format=<FORMAT>

  • -b, --verbosity LEVEL (default: verbose) β€” set how chatty the command is. 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>

Dump

  • -q, --query-metainfo β€” tells the command to query the HTTP metainfo properties, namely Content-{Length,Type}. This makes libquvi(3) send an HTTP HEAD request for each HTTP media stream URL and parse whatever comes back. When you use it, the command includes these properties in the printed media properties. πŸ”₯

config: dump.query-metainfo=<boolean>

Exec

  • -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 the child program's standard error.

config: exec.enable-stderr=<boolean>

  • -O, --exec-enable-stdout β€” do not discard the child program's standard output.

config: exec.enable-stdout=<boolean>

  • -e, --exec COMMAND β€” execute a child program asynchronously after parsing the media properties. COMMAND may contain any of the following property sequences. Each occurrence 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,...]>

HTTP

  • -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.
Note β€” libquvi-scripts(7) may override this value.

config: http.user-agent=<USERAGENT>


🌈 EXAMPLES

  • 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

⭐ ENVIRONMENT

See quvi(1). πŸ’«


πŸ”₯ EXIT STATUS

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


πŸ‘‘ SEE ALSO

quvirc(5), libquvi(3)


🧚 FURTHER RESOURCES

  • Home

http://quvi.sourceforge.net/

  • Development code

git://repo.or.cz/quvi-tool.git

  • gitweb

http://repo.or.cz/w/quvi-tool.git


πŸŽ€ AUTHORS

  • Toni Gundogdu <legatvs@gmail.com> β€” Author.

πŸ’€ REPORTING BUGS

Report bugs to the quvi-devel mailing list <quvi-devel@lists.sourceforge.net>, where the development and the maintenance is primarily done. Good news bestie: you do not have to be subscribed to the list to send a message there. 🫢


✨ LICENSE

quvi is Free Software licensed under the GNU Affero GPLv3+


🫢 QUVI

Part of the quvi(1) suite.


And that's the whole page, no cap β€” this was quvi version 0.9.5, dated 11/10/2013, straight out of the quvi Manual, section 1. Go forth and dump those properties, bestie. πŸ’–βœ¨