Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
QUVI-GET(1)			  quvi Manual			   QUVI-GET(1)

       quvi-get	- The vilified media stream extraction tool

       quvi get	[OPTIONS] [ARGS]

       This command saves the media stream to a	file.

       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

       Playlist	URLs
	   The entire playlist of media	URLs will be extracted.

       Media URLs
	   The media will be extracted.

       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. The input may contain file	URIs.

       -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

       -S, --print-streams
	   Query and print the available media streams.	See also

       -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:

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

	   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.

	   The first available stream is selected if nothing matched


       -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

	   o	verbose	- default

	   o	quiet -	errors only

	   o	mute - nothing at all

	   config: core.verbosity=<LEVEL>

       -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,...]>

       -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

	   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:s/\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>

       -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>

       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

	       $ 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

       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

       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).

       quvirc(5), libquvi(3)


       Development code



       Toni Gundogdu <>

       Report bugs to the quvi-devel mailing list
       <> 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

quvi 0.9.5			  11/10/2013			   QUVI-GET(1)


Want to link to this manual page? Use this URL:

home | help