NAME¶
quvi - query media tool
SYNOPSIS¶
quvi [options] [url ...] [file ...]
DESCRIPTION¶
quvi is a command line tool for parsing flash media stream URLs. It supports
many websites including YouTube and Dailymotion.
COMMAND LINE PARSER¶
GNU gengetopt is very flexible.
Example¶
quvi --category http --category rtmp --verbosity debug \
--export-level +errors --feature -verify --feature -resolve
Same as above but with short options¶
quvi -c http -c rtmp -v debug -l +errors -e -verify -e -resolve
Or even simply¶
quvi -ch -cr -vd -l+ -e-v -e-r
OPTIONS¶
quvi reads standard input by default. It can also read the URLs from files but
expects each URL to be separated by a newline character.
-h, --help¶
Print help and exit.
--version¶
Print program version and exit.
--license¶
Print license and exit.
--support [arg]¶
Print supported hosts and exit. If
arg is present, the program checks
whether the
arg is supported.
The default behaviour, without an
arg, causes quvi to print the supported
websites. The
first string is the domain string which is, in fact, a
(Lua) pattern used to match the URL to a libquvi script. The
second
string is,
now obsolete (see below), an array containing the supported
formats specific to the host.
Use "--query-formats" if you need to check an URL for the available
formats.
See also "EXAMPLES".
-e, --feature arg¶
Enable or disable a feature. See also "EXAMPLES". Possible values:
resolve (default)
Resolve HTTP directions, e.g. shortened URLs. See below.
-resolve
Do not resolve HTTP redirections. When used, quvi will not be able to resolve
most of the "shortened URLs" produced by different URL shortening
services.
Note that libquvi scripts that explicitly (need to) resolve redirections will
continue to do so even if this switch is used.
verify (default)
Verify media stream URL after parsing. See below.
-verify
Do not verify media stream URL after parsing. When used, some media details,
e.g. content length, will not become available.
Note that libquvi skips the verification automatically with all non-HTTP media
stream URLs.
proxy (default)
Use a HTTP proxy with connections if it is defined using either the
"--proxy" or the
http_proxy value. See below.
-proxy
Disable use of a HTTP proxy completely. Proxy will not be used even if it is
defined in
http_proxy.
Set the interchange format in which the data is to be printed. Possible values:
json .. Print in JSON (default)
xml .. Print in XML
Set level of the exported interchange data. Possible values:
media .. Media only (default)
+errors .. Media and error messages
See also "--export-format".
-v, --verbosity arg (=verbose)¶
Set the verbosity level of the printed messages. Possible values:
debug .. Everything, including libcurl generated messages
verbose .. Most messages (default)
quiet .. Errors and warnings only
mute .. Nothing at all
--exec arg¶
Invoke
arg after each successfully parsed URL. The following specifiers
are supported:
%u .. Media stream URL
%t .. Media title
%e .. Media file suffix (extension)
%h .. Media thumbnail URL
Note that
each occurence of the specifier will be replaced within the
arg. quvi accepts multiple occurrences of "--exec". See also
"EXAMPLES".
-c, --category arg (=all)¶
Enable the level of the libquvi script categories. By default, all of the
categories levels are enabled. Possible values:
http .. HTTP category scripts only
rtmp .. RTMP ...
rtsp .. RTSP ...
mms .. MMS ...
all .. All of the above
quvi accepts multiple occurrences of "--category". See also
"EXAMPLES".
Query available formats to the URL. The returned array is created from the data
returned by the server. You can use the
format strings in this array
with "--format".
The available formats are determined by the
libquvi script responsible
for parsing the media details.
See also "--format".
Query media details for the format
arg. The
arg may also be
"default" or "best". The
arg value is used with
all of the URLs fed to quvi.
If the
arg is "best", the
libquvi script responsible for
parsing the media details will determine the "best" format available
to an URL.
If the
arg is "default" the
libquvi script attempts to
return an URL to whatever it deemed to be the "default" format for
the URL.
The
libquvi script will return the "default" format if the
arg was unrecognized or the requested format was not available.
You can find more information about the YouTube specific "fmt" IDs at:
<
http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs>
See also "--query-formats".
--agent arg (=Mozilla/5.0)¶
Identify quvi as
arg to the HTTP servers. Default is
"Mozilla/5.0".
--proxy arg¶
Use proxy for HTTP connections, e.g. "
http://foo:1234". You can also
define
http_proxy environment setting to for the same effect.
--connect-timeout seconds¶
Maximum seconds allowed connection to server take. Default is 30.
DEPRECATED¶
The following options have been marked as "deprecated" and will be
removed in the later versions of quvi.
--no-proxy¶
Disable use of HTTP proxy completely. Proxy will not be used even if it is
defined in
http_proxy. Use "--feature" instead.
-r, --no-resolve¶
Do not resolve HTTP redirections. When used, quvi will not be able to resolve
most of the "shortened URLs" produced by different URL shortening
services.
Note that libquvi scripts that explicitly (need to) resolve redirections will
continue to do so even if this switch is used. Use "--feature"
instead.
-n, --no-verify¶
Do not verify media stream URL after parsing. When used, some media details,
e.g. content length, will not become available.
Note that libquvi skips the verification automatically with all non-HTTP media
stream URLs. Use "--feature" instead.
-q, --quiet¶
Turn off all output printed to stderr (excl. any errors). If
"--verbose-libcurl" is specified, libcurl will continue to print
messages to stderr. The media details will still be printed to stdout. Use
"--verbosity" instead.
--verbose-libcurl¶
Turn on libcurl verbose mode. Use "--verbosity" instead.
--xml¶
Print the media details (and errors, if "--export-level=+errors" is
specified) in XML. Use "--export-format" instead.
--category-http¶
Enable category HTTP webscripts. This is the default category. Use
"--category" instead.
--category-mms¶
Enable category MMS webscripts. Use "--category" instead.
--category-rtsp¶
Enable category RTSP webscripts. Use "--category" instead.
--category-rtmp¶
Enable category RTMP webscripts. Use "--category" instead.
--category-all¶
Enable all categories of webscripts. Use "--category" instead.
EXAMPLES¶
Always quote the URLs in the command line as seen below. Many URLs contain
parameters that may otherwise cause the shell to behave with unexpected
results.
quvi "URL"¶
Typical use.
quvi -d xml "URL"¶
Same but print the results in XML.
quvi -f best "URL"¶
Get for the best available format of the media. This assumes >1 formats are
supported, otherwise will fallback to default format.
quvi -F "URL"¶
Query available formats to the URL. Use one of the returned format strings from
this list with "--format".
quvi --support¶
Print the supported websites. The domain strings are patterns.
quvi --support -c rtmp -c mms¶
Same but print only those from the RTMP and the MMS categories.
quvi --support "URL"¶
Check whether the URL is supported. This does not require an Internet connection
but will fail with most "shortened" URLs.
quvi -vm -e-r -e-v "URL" --exec "echo %t"
--exec "vlc %u"¶
Mute message output (-vm), do not resolve HTTP redirections (-e-r) and skip
media stream URL verification (-e-v). Print media title using
echo(1),
open media stream URL in
vlc(1).
FILES¶
$HOME/.quvirc¶
Most of the command line options can also be defined in the configuration file.
For example:
agent = foo/1.0 # --agent
proxy = http://foo:1234 # --proxy
You can also use $QUVI_HOME instead of $HOME.
ENVIRONMENT¶
quvi¶
QUVI_HOME
Path to the directory with the configuration file. If set, quvi command uses
this instead of $HOME.
libquvi¶
LIBQUVI_SCRIPTSDIR
Path to the libquvi-scripts directory. Overrides the libquvi default search
paths for the scripts, e.g.:
env LIBQUVI_SCRIPTSDIR=/dir/with/quvi/lua/scripts/ quvi
Make sure it points to a directory containing the lua/ directory with the
expected "util/*.lua" and "website/quvi/*.lua" scripts
that are normally installed with libquvi-scripts.
For a totorial that covers these steps, see the libquvi C API documentation at:
<http://quvi.sourceforge.net/doc/>
LIBQUVI_SHOW_SCANDIR
If set, libquvi prints the lua script search paths to the stderr.
LIBQUVI_SHOW_SCRIPT
If set, the lua scripts found by libquvi are printed to the stderr.
env LIBQUVI_SHOW_SCRIPT=1 quvi
libcurl¶
http_proxy
http_proxy value is used if defined. Note, however, that "--proxy" and
"--feature -proxy" both override this behaviour.
EXIT STATUS¶
quvi exits with 0 on success and >0 if an error occurred.
QUVI_OK = 0x00
QUVI_MEM = 0x01, Memory allocation failed
(or invalid quvi command line option)
QUVI_BADHANDLE = 0x02, Bad session handle
QUVI_INVARG = 0x03, Invalid function (or command line) arg
QUVI_CURLINIT = 0x04, libcurl initialization failed
QUVI_LAST = 0x05, Indicates end of list iteration
QUVI_ABORTEDBYCALLBACK= 0x06, Aborted by callback function
QUVI_LUAINIT = 0x07, Lua initialization failure
QUVI_NOLUAWEBSITE = 0x08, Failed to find lua webscripts
QUVI_NOLUAUTIL = 0x09, Failed to find the utility scripts
--
QUVI_NOSUPPORT = 0x41, libquvi does not support the host
QUVI_CALLBACK = 0x42, network callback error occurred
QUVI_ICONV = 0x43, libiconv error occurred
QUVI_LUA = 0x44, lua error occurred
WWW¶
Home : http://quvi.sourceforge.net/
gitweb: http://repo.or.cz/w/quvi-tool.git
LICENSE¶
quvi is free software, licensed under the LGPLv2.1+.
SEE ALSO¶
libquvi(3),
libquvi-scripts(7)
AUTHOR¶
Toni Gundogdu <legatvs at sign gmail com>
Thanks to all those who have contributed to the project by sending patches,
reporting bugs and writing feedback. You know who you are.