1QUVI-GET(1)                       quvi Manual                      QUVI-GET(1)
2
3
4

NAME

6       quvi-get - The vilified media stream extraction tool
7

SYNOPSIS

9       quvi get [OPTIONS] [ARGS]
10

DESCRIPTION

12       This command saves the media stream to a file.
13

DEFAULT BEHAVIOUR

15       The command will attempt to determine if any of the libquvi-scripts(7)
16       accept the input URL before exiting with an error. The script type
17       {playlist,media,...} determines how the command will handle the input
18       URL.
19
20       Playlist URLs
21           The entire playlist of media URLs will be extracted.
22
23       Media URLs
24           The media will be extracted.
25

SUPPORT

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

CONFIGURATION

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

INPUT

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

OPTIONS

41   Core
42       -o, --check-mode-offline
43           Do not resolve URL redirections before passing the URL to the
44           libquvi-scripts(7) to determine whether the URL is accepted by any
45           of the scripts.
46
47           config: core.check-mode-offline=<boolean>
48
49       -B, --print-subtitles
50           Query and print the available media subtitles. See also
51           --print-format.
52
53       -S, --print-streams
54           Query and print the available media streams. See also
55           --print-format.
56
57       -l, --subtitle-language PATTERN[,PATTERN,...]
58           Match a subtitle language using a regex PATTERN. The value may be a
59           comma-separated list of regex PATTERNs (left-to-right order) that
60           are matched against the available selection.
61
62           The value may also contain the reserved keyword croak which will
63           cause libquvi(3) to exit with an error when reached.
64
65           Note
66           The first available subtitle language will be chosen if nothing
67           matched the PATTERN
68
69           config: core.subtitle-language=<PATTERN[,PATTERN,...]>
70
71       -s, --stream PATTERN[,PATTERN,...]
72           Match a stream using a regex PATTERN. The value may be a
73           comma-separated list of regex PATTERNs (left-to-right order) that
74           are matched against the available selection.
75
76           The value may contain the following reserved keywords:
77
78           ·    croak - instructs libquvi(3) to exit with an error when
79               reached
80
81           ·    best - instructs libquvi(3) to choose the best quality stream
82
83           The best quality is determined by the libquvi-scripts(7) by
84           comparing the media quality properties, e.g. the video height
85           property, although the actual method may vary depending on the data
86           provided by the media hosting service.
87
88           Note
89           The first available stream is selected if nothing matched
90
91           config: core.stream=<PATTERN[,PATTERN,...]>
92
93       -L, --subtitle-export-format FORMAT (default: srt)
94           Export the subtitle language to the specified FORMAT. The available
95           FORMATs are determined by the current selection of the subtitle
96           export libquvi-scripts(7).
97
98           config: core.subtitle-export-format=<FORMAT>
99
100       -b, --verbosity LEVEL (default: verbose)
101           Specify the verbosity level of the command. LEVEL may be:
102
103           ·    debug - verbose + enable verbose output for libcurl
104               (CURLOPT_VERBOSE)
105
106           ·    verbose - default
107
108           ·    quiet - errors only
109
110           ·    mute - nothing at all
111
112           config: core.verbosity=<LEVEL>
113
114   Exec
115       -A, --exec-dump-argv
116           Print the argument array used to execute the child program.
117
118           config: exec.dump-argv=<boolean>
119
120       -E, --exec-enable-stderr
121           Do not discard child program’s standard error.
122
123           config: exec.enable-stderr=<boolean>
124
125       -O, --exec-enable-stdout
126           Do not discard child program’s standard output.
127
128           config: exec.enable-stdout=<boolean>
129
130       -e, --exec COMMAND
131           Execute a child program asynchoronously after parsing the media
132           properties. COMMAND may contain any of the following property
133           sequences. Each occurence will be replaced by the command before
134           the COMMAND is executed:
135
136               %s  Media property: start time (ms)
137               %T  Media property: thumbnail URL
138               %d  Media property: duration (ms)
139               %u  Media stream property: URL
140               %I  Media stream property: ID
141               %t  Media property: title
142               %i  Media property: ID
143               %e  File extension[1]
144               %f  Path to the saved media file[2]
145
146               [1]: The file extension is parsed from the HTTP content-type header.
147                    quvi-get(1) replaces this sequence with HTTP media streams only.
148                    quvi-dump(2) replaces it only when --query-metainfo is used with
149                    HTTP media streams.
150
151               [2]: This sequence is unique to quvi-get(1)
152
153           This option may be specified multiple times. In the quvirc(5) file,
154           specify the commands in a comma-separated list.
155
156           config: exec.external=<COMMAND[,COMMAND,...]>
157
158   Get
159       -w, --overwrite
160           Overwrite the existing file.
161
162       -g, --output-regex PATTERN (default: multiple)
163           Apply a regex PATTERN against a media property.
164
165           The PATTERN will be used to match/replace all occurences — this is
166           similar to the g modifier of Perl. The option supports the m//
167           (match, m is optional) operation and the s/// substitution
168           operation.
169
170           The syntax is similar to Perl-syntax except that this option
171           expects a leading "property sequence" that specifies the media
172           property to apply the regex PATTERN against. See the section called
173           “Exec” for a complete list of the supported "property sequences".
174
175           This option may be specified multiple times. Inside the quvirc(5)
176           file, specify the PATTERNs in a comma-separated list. Double any
177           backslashes inside the quvirc(5) in the PATTERN.
178
179           The command applies the following PATTERNs by default:
180
181               %t:/\w|\s/
182               %t:s/\s\s+/ /
183               %t:s/^\s+//
184               %t:s/\s+$//
185
186           config: get.output-regex=<PATTERN[,PATTERN,...]>
187
188       -f, --output-file FILE
189           Write the media to the specified FILE.
190
191       -n, --output-name FORMAT (default: "%t.%e")
192           Specify the file name FORMAT. This value determines how the saved
193           media files will be named. All occurences of the supported media
194           property sequences will be replaced. See the section called “Exec”
195           for a complete list of the supported "property sequences".
196
197           config: get.output-name=<FORMAT>
198
199       -i, --output-dir DIR (default: cwd)
200           Write the saved media to the DIR.
201
202           config: get.output-dir=<DIR>
203
204       -r, --resume-from OFFSET (default: 0)
205           Specify the offset from which the transfer should continue. If this
206           value is 0 (default), the command will attempt to resume the
207           transfers automatically. If the value is >0, the command will
208           attempt to resume the transfer from the specified offset.
209
210           If the value is >=0, the command will send an HEAD request to the
211           HTTP server to query the content-{type,length} values. These are
212           used to build the output filename and to determine whether the
213           transfer should be resumed; the content-length value is compared to
214           the local file length to determine whether transfer should resume.
215
216           Use of a negative value (<0) will cause the command to disable
217           resuming completely causing the command to skip the step that sends
218           the HEAD request to the HTTP server, and start the transfer from
219           the 0 offset, and effectively, overwriting the existing file. The
220           content-{type,length} values are parsed from the returned HTTP GET
221           response, instead.
222
223           Technical: libcurl requires setting CURLOPT_RESUME_FROM_LARGE
224           before ‘curl_easy_perform’ is called. The the command has no way of
225           knowing whether the transfer should be resumed if ‘content-length’
226           is not queried by sending a HTTP HEAD request before the transfer
227           begins. A possible workaround is to specify from which offset the
228           transfer should continue, but this requires that the user
229           determines the value by hand.
230
231           config: get.resume-from=<OFFSET>
232
233       -k, --skip-transfer
234           Do not save the media.
235
236           config: get.skip-transfer=<boolean>
237
238       -t, --throttle RATE (default: 0)
239           Do not exceed the transfer RATE (Ki/s). Setting this value to 0
240           disables the throttle. This setting affects only the saving process
241           of the media stream.
242
243           config: get.throttle=<RATE>
244
245   HTTP
246       -c, --enable-cookies
247           Have libcurl parse the received cookies and use them in the
248           subsequent HTTP requests.
249
250           config: http.enable-cookies=<boolean>
251
252       -u, --user-agent USERAGENT (default: Mozilla/5.0)
253           Identify as USERAGENT to the HTTP server.
254
255           Note
256           libquvi-scripts(7) may override this value
257
258           config: http.user-agent=<USERAGENT>
259

EXAMPLES

261       ·   Save the stream:
262
263               $ quvi get MEDIA_URL
264
265       ·   Dump the available streams:
266
267               $ quvi get -S MEDIA_URL
268
269       ·   Save the selected stream:
270
271               $ quvi get -s foo MEDIA_URL
272
273       ·   Similar to the above but choose the stream "baz" if "foo" is not
274           available:
275
276               $ quvi get -s foo,baz,best MEDIA_URL
277               $ quvi get -s foo,baz,croak MEDIA_URL
278
279           The first will grab whatever is the best quality if neither ("foo"
280           or "baz") stream is available. The use of "croak" keyword will
281           cause the command to exit with an error if neither stream is
282           available.
283
284       ·   Dump the available subtitles:
285
286               $ quvi get -B MEDIA_URL
287
288       ·   Do not save the media stream, grab "cc_en" subtitles only:
289
290               $ quvi get -k -l cc_en,croak MEDIA_URL
291
292           Use of "croak" keyword will cause the command to exit with an error
293           if "cc_en" subtitle was not available.
294
295       ·   Watch the entire playlist using mplayer(1):
296
297               $ quvi get -e "mplayer %f" PLAYLIST_URL
298

ENVIRONMENT

300       See quvi(1)
301

EXIT STATUS

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

SEE ALSO

307       quvirc(5), libquvi(3)
308

FURTHER RESOURCES

310       Home
311
312           http://quvi.sourceforge.net/
313
314       Development code
315
316           git://repo.or.cz/quvi-tool.git
317
318       gitweb
319
320           http://repo.or.cz/w/quvi-tool.git
321

AUTHORS

323       Toni Gundogdu <legatvs@gmail.com>
324           Author.
325

REPORTING BUGS

327       Report bugs to the quvi-devel mailing list
328       <quvi-devel@lists.sourceforge.net> where the development and the
329       maintenance is primarily done. You do not have to be subscribed to the
330       list to send a message there.
331

LICENSE

333       quvi is Free Software licensed under the GNU Affero GPLv3+
334

QUVI

336       Part of the quvi(1) suite
337
338
339
340quvi 0.9.5                        11/10/2013                       QUVI-GET(1)
Impressum