DragonFly On-Line Manual Pages
QUVI-GET(1) quvi Manual QUVI-GET(1)
NAME
quvi-get - The vilified media stream extraction tool
SYNOPSIS
quvi get [OPTIONS] [ARGS]
DESCRIPTION
This command saves the media stream to a file.
DEFAULT BEHAVIOUR
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 entire playlist of media URLs will be extracted.
Media URLs
The media will be extracted.
SUPPORT
The support for the media hosts is determined by the current selection
of libquvi-scripts(7).
CONFIGURATION
See quvirc(5) for more information about the groups and the variables
that quvi parses.
INPUT
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. The input may contain file URIs.
OPTIONS
Core
-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.
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 PATTERNs (left-to-right order) that
are matched against the available selection.
The value may contain the following reserved keywords:
o croak - instructs libquvi(3) to exit with an error when
reached
o 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.
Note
The first available stream is selected if nothing matched
config: core.stream=<PATTERN[,PATTERN,...]>
-L, --subtitle-export-format FORMAT (default: srt)
Export the subtitle language to the specified FORMAT. The available
FORMATs are determined by the current selection of the subtitle
export libquvi-scripts(7).
config: core.subtitle-export-format=<FORMAT>
-b, --verbosity LEVEL (default: verbose)
Specify the verbosity level of the command. LEVEL may be:
o debug - verbose + enable verbose output for libcurl
(CURLOPT_VERBOSE)
o verbose - default
o quiet - errors only
o mute - nothing at all
config: core.verbosity=<LEVEL>
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 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,...]>
Get
-w, --overwrite
Overwrite the existing file.
-g, --output-regex PATTERN (default: multiple)
Apply a regex PATTERN against a media property.
The PATTERN will be used to match/replace all occurences -- this is
similar to the g modifier of Perl. The option supports the m//
(match, m is optional) operation and the s/// substitution
operation.
The syntax is similar to Perl-syntax except that this option
expects a leading "property sequence" that specifies the media
property to apply the regex PATTERN against. See the section called
"Exec" for a complete list of the supported "property sequences".
This option may be specified multiple times. Inside the quvirc(5)
file, specify the PATTERNs in a comma-separated list. Double any
backslashes inside the quvirc(5) in the PATTERN.
The command applies the following PATTERNs by default:
%t:/\w|\s/
%t:s/\s\s+/ /
%t:s/^\s+//
%t:s/\s+$//
config: get.output-regex=<PATTERN[,PATTERN,...]>
-f, --output-file FILE
Write the media to the specified FILE.
-n, --output-name FORMAT (default: "%t.%e")
Specify the file name FORMAT. This value determines how the saved
media files will be named. All occurences of the supported media
property sequences will be replaced. See the section called "Exec"
for a complete list of the supported "property sequences".
config: get.output-name=<FORMAT>
-i, --output-dir DIR (default: cwd)
Write the saved media to the DIR.
config: get.output-dir=<DIR>
-r, --resume-from OFFSET (default: 0)
Specify the offset from which the transfer should continue. If this
value is 0 (default), the command will attempt to resume the
transfers automatically. If the value is >0, the command will
attempt to resume the transfer from the specified offset.
If the value is >=0, the command will send an HEAD request to the
HTTP server to query the content-{type,length} values. These are
used to build the output filename and to determine whether the
transfer should be resumed; the content-length value is compared to
the local file length to determine whether transfer should resume.
Use of a negative value (<0) will cause the command to disable
resuming completely causing the command to skip the step that sends
the HEAD request to the HTTP server, and start the transfer from
the 0 offset, and effectively, overwriting the existing file. The
content-{type,length} values are parsed from the returned HTTP GET
response, instead.
Technical: libcurl requires setting CURLOPT_RESUME_FROM_LARGE
before `curl_easy_perform' is called. The the command has no way of
knowing whether the transfer should be resumed if `content-length'
is not queried by sending a HTTP HEAD request before the transfer
begins. A possible workaround is to specify from which offset the
transfer should continue, but this requires that the user
determines the value by hand.
config: get.resume-from=<OFFSET>
-k, --skip-transfer
Do not save the media.
config: get.skip-transfer=<boolean>
-t, --throttle RATE (default: 0)
Do not exceed the transfer RATE (Ki/s). Setting this value to 0
disables the throttle. This setting affects only the saving process
of the media stream.
config: get.throttle=<RATE>
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
o Save the stream:
$ quvi get MEDIA_URL
o Dump the available streams:
$ quvi get -S MEDIA_URL
o Save the selected stream:
$ quvi get -s foo MEDIA_URL
o Similar to the above but choose the stream "baz" if "foo" is not
available:
$ quvi get -s foo,baz,best MEDIA_URL
$ quvi get -s foo,baz,croak MEDIA_URL
The first will grab whatever is the best quality if neither ("foo"
or "baz") stream is available. The use of "croak" keyword will
cause the command to exit with an error if neither stream is
available.
o Dump the available subtitles:
$ quvi get -B MEDIA_URL
o Do not save the media stream, grab "cc_en" subtitles only:
$ quvi get -k -l cc_en,croak MEDIA_URL
Use of "croak" keyword will cause the command to exit with an error
if "cc_en" subtitle was not available.
o Watch the entire playlist using mplayer(1):
$ quvi get -e "mplayer %f" PLAYLIST_URL
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. 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
quvi 0.9.5 11/10/2013 QUVI-GET(1)