1QUVI-GET(1) quvi Manual QUVI-GET(1)
2
3
4
6 quvi-get - The vilified media stream extraction tool
7
9 quvi get [OPTIONS] [ARGS]
10
12 This command saves the media stream to a file.
13
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
27 The support for the media hosts is determined by the current selection
28 of libquvi-scripts(7).
29
31 See quvirc(5) for more information about the groups and the variables
32 that quvi parses.
33
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
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
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
300 See quvi(1)
301
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
307 quvirc(5), libquvi(3)
308
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
323 Toni Gundogdu <legatvs@gmail.com>
324 Author.
325
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
333 quvi is Free Software licensed under the GNU Affero GPLv3+
334
336 Part of the quvi(1) suite
337
338
339
340quvi 0.9.5 11/10/2013 QUVI-GET(1)