1STREAMLINK(1) Streamlink STREAMLINK(1)
2
3
4
6 streamlink - extracts streams from various services and pipes them into
7 a video player of choice
8
10 Streamlink is command-line application, this means the commands
11 described here should be typed into a terminal. On Windows this means
12 you should open the command prompt or PowerShell, on Mac OS X open the
13 Terminal app and if you're on Linux or BSD you probably already know
14 the drill.
15
16 The way Streamlink works is that it's only a means to extract and
17 transport the streams, and the playback is done by an external video
18 player. Streamlink works best with VLC or mpv, which are also
19 cross-platform, but other players may be compatible too, see the Play‐
20 ers page for a complete overview.
21
22 Now to get into actually using Streamlink, let's say you want to watch
23 the stream located on http://twitch.tv/day9tv, you start off by telling
24 Streamlink where to attempt to extract streams from. This is done by
25 giving the URL to the command streamlink as the first argument:
26
27 $ streamlink twitch.tv/day9tv
28 [cli][info] Found matching plugin twitch for URL twitch.tv/day9tv
29 Available streams: audio, high, low, medium, mobile (worst), source (best)
30
31 NOTE:
32 You don't need to include the protocol when dealing with HTTP URLs,
33 e.g. just twitch.tv/day9tv is enough and quicker to type.
34
35 This command will tell Streamlink to attempt to extract streams from
36 the URL specified, and if it's successful, print out a list of avail‐
37 able streams to choose from.
38
39 In some cases (Supported streaming protocols) local files are sup‐
40 ported using the file:// protocol, for example a local HLS playlist can
41 be played. Relative file paths and absolute paths are supported. All
42 path separators are /, even on Windows.
43
44 $ streamlink hls://file://C:/hls/playlist.m3u8
45 [cli][info] Found matching plugin stream for URL hls://file://C:/hls/playlist.m3u8
46 Available streams: 180p (worst), 272p, 408p, 554p, 818p, 1744p (best)
47
48 To select a stream and start playback, we simply add the stream name as
49 a second argument to the streamlink command:
50
51 $ streamlink twitch.tv/day9tv source
52 [cli][info] Found matching plugin twitch for URL twitch.tv/day9tv
53 [cli][info] Opening stream: source (hls)
54 [cli][info] Starting player: vlc
55
56 The stream you chose should now be playing in the player. It's a common
57 use case to just want start the highest quality stream and not be both‐
58 ered with what it's named. To do this just specify best as the stream
59 name and Streamlink will attempt to rank the streams and open the one
60 of highest quality. You can also specify worst to get the lowest qual‐
61 ity.
62
63 Now that you have a basic grasp of how Streamlink works, you may want
64 to look into customizing it to your own needs, such as:
65
66 · Creating a configuration file of options you want to use
67
68 · Setting up your player to cache some data before playing the stream
69 to help avoiding buffering issues
70
72 Writing the command-line options every time is inconvenient, that's why
73 Streamlink is capable of reading options from a configuration file
74 instead.
75
76 Streamlink will look for config files in different locations depending
77 on your platform:
78
79 ┌──────────────────┬───────────────────────────┐
80 │Platform │ Location │
81 ├──────────────────┼───────────────────────────┤
82 │Unix-like (POSIX) │ │
83 │ │ · $XDG_CON‐ │
84 │ │ FIG_HOME/stream‐ │
85 │ │ link/config │
86 │ │ │
87 │ │ · ~/.streamlinkrc │
88 ├──────────────────┼───────────────────────────┤
89 │Windows │ %APPDATA%\stream‐ │
90 │ │ link\streamlinkrc │
91 └──────────────────┴───────────────────────────┘
92
93 You can also specify the location yourself using the --config option.
94
95 NOTE:
96
97 · $XDG_CONFIG_HOME is ~/.config if it has not been overridden
98
99 · %APPDATA% is usually <your user directory>\AppData
100
101 NOTE:
102 On Windows there is a default config created by the installer but on
103 any other platform you must create the file yourself.
104
105 Syntax
106 The config file is a simple text file and should contain one
107 command-line option (omitting the dashes) per line in the format:
108
109 option=value
110
111 or for a option without value:
112
113 option
114
115 NOTE:
116 Any quotes used will be part of the value, so only use when the
117 value needs them, e.g. specifying a player with a path containing
118 spaces.
119
120 Example
121 # Player options
122 player=mpv --cache 2048
123 player-no-close
124
125 # Authenticate with Twitch
126 twitch-oauth-token=mytoken
127
128 NOTE:
129 Full player paths are supported via configuration file options such
130 as player="C:\mpv-x86_64\mpv"
131
133 You may want to use specific options for some plugins only. This can be
134 accomplished by placing those settings inside a plugin specific config
135 file. Options inside these config files will override the main config
136 file when a URL matching the plugin is used.
137
138 Streamlink expects this config to be named like the main config but
139 with .<plugin name> attached to the end.
140
141 Examples
142 ┌──────────────────┬───────────────────────────┐
143 │Platform │ Location │
144 ├──────────────────┼───────────────────────────┤
145 │Unix-like (POSIX) │ │
146 │ │ · $XDG_CON‐ │
147 │ │ FIG_HOME/stream‐ │
148 │ │ link/con‐ │
149 │ │ fig.twitch │
150 │ │ │
151 │ │ · ~/.stream‐ │
152 │ │ linkrc.ustreamtv │
153 ├──────────────────┼───────────────────────────┤
154 │Windows │ %APPDATA%\stream‐ │
155 │ │ link\streamlinkrc.youtube │
156 └──────────────────┴───────────────────────────┘
157
158 Have a look at the list of plugins to see the name of each built-in
159 plugin.
160
162 Authenticating with Twitch
163 It's possible to access subscription content on Twitch by giving
164 Streamlink access to your account.
165
166 Authentication is done by creating an OAuth token that Streamlink will
167 use to access your account. It's done like this:
168
169 $ streamlink --twitch-oauth-authenticate
170
171 This will open a web browser where Twitch will ask you if you want to
172 give Streamlink permission to access your account, then forwards you to
173 a page with further instructions on how to use it.
174
175 Authenticating with Crunchyroll
176 Crunchyroll requires authenticating with a premium account to access
177 some of their content. To do so, the plugin provides a couple of
178 options to input your information, --crunchyroll-username and
179 --crunchyroll-password.
180
181 You can login like this:
182
183 $ streamlink --crunchyroll-username=xxxx --crunchyroll-password=xxx http://crunchyroll.com/a-crunchyroll-episode-link
184
185 NOTE:
186 If you omit the password, streamlink will ask for it.
187
188 Once logged in, the plugin makes sure to save the session credentials
189 to avoid asking your username and password again.
190
191 Nevertheless, these credentials are valid for a limited amount of time,
192 so it might be a good idea to save your username and password in your
193 configuration file anyway.
194
195 WARNING:
196 The API this plugin uses isn't supposed to be available to use it on
197 computers. The plugin tries to blend in as a valid device using cus‐
198 tom headers and following the API usual flow (e.g. reusing creden‐
199 tials), but this does not assure that your account will be safe from
200 being spotted for unusual behavior.
201
202 HTTP proxy with Crunchyroll
203 You can use the --http-proxy and --https-proxy options (you need both
204 since the plugin uses both protocols) to access the Crunchyroll servers
205 through a proxy to be able to stream region locked content.
206
207 When doing this, it's very probable that you will get denied to access
208 the stream; this occurs because the session and credentials used by the
209 plugin where obtained when logged from your own region, and the server
210 still assumes you're in that region.
211
212 For this, the plugin provides the --crunchyroll-purge-credentials
213 option, which removes your saved session and credentials and tries to
214 log in again using your username and password.
215
216 Authenticating with FunimationNow
217 Like Crunchyroll, the FunimationNow plugin requires authenticating with
218 a premium account to access some content: --funimation-email,
219 --funimation-password. In addition, this plugin requires a incap_ses
220 cookie to be sent with each HTTP request (see issue #2088); this unique
221 session cookie can be found in your browser and sent via the
222 --http-cookie option.
223
224 For example:
225
226 $ streamlink --funimation-email='xxx' --funimation-password='xxx' --http-cookie 'incap_ses_xxx=xxxx=' https://funimation.com/shows/show/an-episode-link
227
228 NOTE:
229 There are multiple ways to retrieve the required cookie. For more
230 information on browser cookies, please consult the following:
231
232 · What are cookies?
233
235 Streamlink will attempt to load standalone plugins from these directo‐
236 ries:
237
238 ┌──────────────────┬────────────────────────────┐
239 │Platform │ Location │
240 ├──────────────────┼────────────────────────────┤
241 │Unix-like (POSIX) │ $XDG_CONFIG_HOME/stream‐ │
242 │ │ link/plugins │
243 ├──────────────────┼────────────────────────────┤
244 │Windows │ %APPDATA%\streamlink\plug‐ │
245 │ │ ins │
246 └──────────────────┴────────────────────────────┘
247
248 NOTE:
249 If a plugin is added with the same name as a built-in plugin then
250 the added plugin will take precedence. This is useful if you want to
251 upgrade plugins independently of the Streamlink version.
252
254 There are many types of streaming protocols used by services today and
255 Streamlink supports most of them. It's possible to tell Streamlink to
256 access a streaming protocol directly instead of relying on a plugin to
257 extract the streams from a URL for you.
258
259 A protocol can be accessed directly by specifying it in the URL format:
260
261 protocol://path [key=value]
262
263 Accessing a stream that requires extra parameters to be passed along
264 (e.g. RTMP):
265
266 $ streamlink "rtmp://streaming.server.net/playpath live=1 swfVfy=http://server.net/flashplayer.swf"
267
268 When passing parameters to the built-in stream plugins the values will
269 either be treated as plain strings, as is the case in the above example
270 for swfVry, or they will be interpreted as Python literals. For example
271 you can pass a Python dict or Python list as one of the parameters.
272
273 $ streamlink "rtmp://streaming.server.net/playpath conn=['B:1', 'S:authMe', 'O:1', 'NN:code:1.23', 'NS:flag:ok', 'O:0']"
274 $ streamlink "hls://streaming.server.net/playpath params={'token': 'magicToken'}"
275
276 In the above examples conn will be passed as the Python list:
277
278 ['B:1', 'S:authMe', 'O:1', 'NN:code:1.23', 'NS:flag:ok', 'O:0']
279
280 and params will be passed as the Python dict:
281
282 {'token': 'magicToken'}
283
284 Most streaming technologies simply requires you to pass a HTTP URL,
285 this is a Adobe HDS stream:
286
287 $ streamlink hds://streaming.server.net/playpath/manifest.f4m
288
289 Supported streaming protocols
290 ┌───────────────────────────┬────────────────────────────┐
291 │Name │ Prefix │
292 ├───────────────────────────┼────────────────────────────┤
293 │Adobe HTTP Dynamic Stream‐ │ hds:// │
294 │ing │ │
295 ├───────────────────────────┼────────────────────────────┤
296 │Akamai HD Adaptive Stream‐ │ akamaihd:// │
297 │ing │ │
298 ├───────────────────────────┼────────────────────────────┤
299 │Apple HTTP Live Streaming │ hls:// [1] │
300 ├───────────────────────────┼────────────────────────────┤
301 │MPEG-DASH [2] │ dash:// │
302 ├───────────────────────────┼────────────────────────────┤
303 │Real Time Messaging Proto‐ │ rtmp:// rtmpe:// rtmps:// │
304 │col │ rtmpt:// rtmpte:// │
305 ├───────────────────────────┼────────────────────────────┤
306 │Progressive HTTP, HTTPS, │ httpstream:// [1] │
307 │etc │ │
308 └───────────────────────────┴────────────────────────────┘
309
310 [1] supports local files using the file:// protocol
311
312 [2] Dynamic Adaptive Streaming over HTTP
313
315 You can use the --http-proxy and --https-proxy options to change the
316 proxy server that Streamlink will use for HTTP and HTTPS requests
317 respectively. As HTTP and HTTPS requests can be handled by separate
318 proxies, you may need to specify both options if the plugin you use
319 makes HTTP and HTTPS requests.
320
321 Both HTTP and SOCKS proxies are supported, authentication is supported
322 for both types.
323
324 NOTE:
325 When using a SOCKS proxy the socks4 and socks5 schemes mean that DNS
326 lookups are done locally, rather than on the proxy server. To have
327 the proxy server perform the DNS lookups, the socks4a and socks5h
328 schemes should be used instead.
329
330 For example:
331
332 $ streamlink --http-proxy "http://user:pass@10.10.1.10:3128/" --https-proxy "socks5://10.10.1.10:1242"
333 $ streamlink --http-proxy "socks4a://10.10.1.10:1235" --https-proxy "socks5h://10.10.1.10:1234"
334
336 $ streamlink [OPTIONS] <URL> [STREAM]
337
338 Positional arguments
339 URL A URL to attempt to extract streams from.
340
341 Usually, the protocol of http(s) URLs can be omitted ("‐
342 https://"), depending on the implementation of the plugin being
343 used.
344
345 Alternatively, the URL can also be specified by using the --url
346 option.
347
348 STREAM Stream to play.
349
350 Use best or worst for selecting the highest or lowest available
351 quality.
352
353 Fallback streams can be specified by using a comma-separated
354 list:
355
356 "720p,480p,best"
357
358 If no stream is specified and --default-stream is not used, then
359 a list of available streams will be printed.
360
361 General options
362 -h, --help
363 Show this help message and exit.
364
365 -V, --version
366 Show version number and exit.
367
368 --plugins
369 Print a list of all currently installed plugins.
370
371 --plugin-dirs DIRECTORY
372 Attempts to load plugins from these directories.
373
374 Multiple directories can be used by separating them with a
375 comma.
376
377 --can-handle-url URL
378 Check if Streamlink has a plugin that can handle the specified
379 URL.
380
381 Returns status code 1 for false and 0 for true.
382
383 Useful for external scripting.
384
385 --can-handle-url-no-redirect URL
386 Same as --can-handle-url but without following redirects when
387 looking up the URL.
388
389 --config FILENAME
390 Load options from this config file.
391
392 Can be repeated to load multiple files, in which case the
393 options are merged on top of each other where the last config
394 has highest priority.
395
396 -l LEVEL, --loglevel LEVEL
397 Set the log message threshold.
398
399 Valid levels are: none, error, warning, info, debug, trace
400
401 -Q, --quiet
402 Hide all log output.
403
404 Alias for "--loglevel none".
405
406 -j, --json
407 Output JSON representations instead of the normal text output.
408
409 Useful for external scripting.
410
411 --auto-version-check {yes,true,1,on,no,false,0,off}
412 Enable or disable the automatic check for a new version of
413 Streamlink.
414
415 Default is: "no".
416
417 --version-check
418 Runs a version check and exits.
419
420 --locale LOCALE
421 The preferred locale setting, for selecting the preferred subti‐
422 tle and audio language.
423
424 The locale is formatted as [language_code]_[country_code], eg.
425 en_US or es_ES.
426
427 Default is: system locale.
428
429 --twitch-oauth-authenticate
430 Open a web browser where you can grant Streamlink access to your
431 Twitch account which creates a token for use with
432 --twitch-oauth-token.
433
434 Player options
435 -p COMMAND, --player COMMAND
436 Player to feed stream data to. By default, VLC will be used if
437 it can be found in its default location.
438
439 This is a shell-like syntax to support using a specific player:
440
441 streamlink --player=vlc <url> [stream]
442
443 Absolute or relative paths can also be passed via this option in
444 the event the player's executable can not be resolved:
445
446 streamlink --player=/path/to/vlc <url> [stream]
447 streamlink --player=./vlc-player/vlc <url> [stream]
448
449 To use a player that is located in a path with spaces you must
450 quote the parameter or its value:
451
452 streamlink "--player=/path/with spaces/vlc" <url> [stream]
453 streamlink --player "C:\path\with spaces\mpc-hc64.exe" <url> [stream]
454
455 Options may also be passed to the player. For example:
456
457 streamlink --player "vlc --file-caching=5000" <url> [stream]
458
459 As an alternative to this, see the --player-args parameter,
460 which does not log any custom player arguments.
461
462 -a ARGUMENTS, --player-args ARGUMENTS
463 This option allows you to customize the default arguments which
464 are put together with the value of --player to create a command
465 to execute. Unlike the --player parameter, custom player argu‐
466 ments will not be logged.
467
468 This value can contain formatting variables surrounded by curly
469 braces, { and }. If you need to include a brace character, it
470 can be escaped by doubling, e.g. {{ and }}.
471
472 Formatting variables available:
473
474 {filename}
475 This is the filename that the player will use. It's usu‐
476 ally "-" (stdin), but can also be a URL or a file depend‐
477 ing on the options used.
478
479 It's usually enough to use --player instead of this unless you
480 need to add arguments after the filename.
481
482 Default is: "{filename}".
483
484 Example:
485
486 streamlink -p vlc -a "--play-and-exit {filename}" <url> [stream]
487
488 -v, --verbose-player
489 Allow the player to display its console output.
490
491 -n, --player-fifo, --fifo
492 Make the player read the stream through a named pipe instead of
493 the stdin pipe.
494
495 --player-http
496 Make the player read the stream through HTTP instead of the
497 stdin pipe.
498
499 --player-continuous-http
500 Make the player read the stream through HTTP, but unlike
501 --player-http it will continuously try to open the stream if the
502 player requests it.
503
504 This makes it possible to handle stream disconnects if your
505 player is capable of reconnecting to a HTTP stream. This is usu‐
506 ally done by setting your player to a "repeat mode".
507
508 --player-external-http
509 Serve stream data through HTTP without running any player. This
510 is useful to allow external devices like smartphones or stream‐
511 ing boxes to watch streams they wouldn't be able to otherwise.
512
513 Behavior will be similar to the continuous HTTP option, but no
514 player program will be started, and the server will listen on
515 all available connections instead of just in the local (loop‐
516 back) interface.
517
518 The URLs that can be used to access the stream will be printed
519 to the console, and the server can be interrupted using CTRL-C.
520
521 --player-external-http-port PORT
522 A fixed port to use for the external HTTP server if that mode is
523 enabled. Omit or set to 0 to use a random high ( >1024) port.
524
525 --player-passthrough TYPES
526 A comma-delimited list of stream types to pass to the player as
527 a URL to let it handle the transport of the stream instead.
528
529 Stream types that can be converted into a playable URL are:
530
531 · hls
532
533 · http
534
535 · rtmp
536
537 Make sure your player can handle the stream type when using
538 this.
539
540 --player-no-close
541 By default Streamlink will close the player when the stream
542 ends. This is to avoid "dead" GUI players lingering after a
543 stream ends.
544
545 It does however have the side-effect of sometimes closing a
546 player before it has played back all of its cached data.
547
548 This option will instead let the player decide when to exit.
549
550 -t TITLE, --title TITLE
551 This option allows you to supply a title to be displayed in the
552 title bar of the window that the video player is launched in.
553
554 This value can contain formatting variables surrounded by curly
555 braces, { and }. If you need to include a brace character, it
556 can be escaped by doubling, e.g. {{ and }}.
557
558 This option is only supported for the following players: mpv,
559 potplayer, vlc.
560
561 VLC specific information:
562 VLC has certain codes you can use inside your title.
563 These are accessible inside --title by using a backslash
564 before the dollar sign VLC uses to denote a format char‐
565 acter.
566
567 e.g. to put the current date in your VLC window title,
568 the string "$A" could be inserted inside your --title
569 string.
570
571 A full list of the format codes VLC uses is available
572 here:
573 https://wiki.videolan.org/Documentation:Format_String/
574
575 mpv specific information:
576 mpv has certain codes you can use inside your title.
577 These are accessible inside --title by using a backslash
578 before the dollar sign mpv uses to denote a format char‐
579 acter.
580
581 e.g. to put the current version of mpv running inside
582 your mpv window title, the string "${{mpv-version}}"
583 could be inserted inside your --title string.
584
585 A full list of the format codes mpv uses is available
586 here: https://mpv.io/manual/stable/#property-expansion
587
588 Formatting variables available to use in --title:
589
590 {title}
591 If available, this is the title of the stream. Other‐
592 wise, it is the string "Unknown Title"
593
594 {author}
595 If available, this is the author of the stream. Other‐
596 wise, it is the string "Unknown Author"
597
598 {category}
599 If available, this is the category the stream has been
600 placed into.
601
602 · For Twitch, this is the game being played
603
604 · For YouTube, it's the category e.g. Gaming, Sports,
605 Music...
606
607 Otherwise, it is the string "No Category"
608
609 {game} This is just a synonym for {category} which may make more
610 sense for gaming oriented platforms. "Game being played"
611 is a way to categorize the stream, so it doesn't need its
612 own separate handling.
613
614 {url} URL of the stream.
615
616 Examples:
617
618 streamlink -p vlc --title "{title} -!- {author} -!- {category} \$A" <url> [stream]
619 streamlink -p mpv --title "{title} -- {author} -- {category} -- (\${{mpv-version}})" <url> [stream]
620
621 File output options
622 -o FILENAME, --output FILENAME
623 Write stream data to FILENAME instead of playing it.
624
625 You will be prompted if the file already exists.
626
627 -f, --force
628 When using -o or -r, always write to file even if it already
629 exists.
630
631 -O, --stdout
632 Write stream data to stdout instead of playing it.
633
634 -r FILENAME, --record FILENAME
635 Open the stream in the player, while at the same time writing it
636 to FILENAME.
637
638 You will be prompted if the file already exists.
639
640 -R FILENAME, --record-and-pipe FILENAME
641 Write stream data to stdout, while at the same time writing it
642 to FILENAME.
643
644 You will be prompted if the file already exists.
645
646 Stream options
647 --url URL
648 A URL to attempt to extract streams from.
649
650 Usually, the protocol of http(s) URLs can be omitted (https://),
651 depending on the implementation of the plugin being used.
652
653 This is an alternative to setting the URL using a positional
654 argument and can be useful if set in a config file.
655
656 --default-stream STREAM
657 Stream to play.
658
659 Use best or worst for selecting the highest or lowest available
660 quality.
661
662 Fallback streams can be specified by using a comma-separated
663 list:
664
665 "720p,480p,best"
666
667 This is an alternative to setting the stream using a positional
668 argument and can be useful if set in a config file.
669
670 --retry-streams DELAY
671 Retry fetching the list of available streams until streams are
672 found while waiting DELAY second(s) between each attempt. If
673 unset, only one attempt will be made to fetch the list of
674 streams available.
675
676 The number of fetch retry attempts can be capped with
677 --retry-max.
678
679 --retry-max COUNT
680 When using --retry-streams, stop retrying the fetch after COUNT
681 retry attempt(s). Fetch will retry infinitely if COUNT is zero
682 or unset.
683
684 If --retry-max is set without setting --retry-streams, the delay
685 between retries will default to 1 second.
686
687 --retry-open ATTEMPTS
688 After a successful fetch, try ATTEMPTS time(s) to open the
689 stream until giving up.
690
691 Default is: 1.
692
693 --stream-types TYPES, --stream-priority TYPES
694 A comma-delimited list of stream types to allow.
695
696 The order will be used to separate streams when there are multi‐
697 ple streams with the same name but different stream types. Any
698 stream type not listed will be omitted from the available
699 streams list. A * can be used as a wildcard to match any other
700 type of stream, eg. muxed-stream.
701
702 Default is: "rtmp,hls,hds,http,akamaihd,*".
703
704 --stream-sorting-excludes STREAMS
705 Fine tune the best and worst stream name synonyms by excluding
706 unwanted streams.
707
708 If all of the available streams get excluded, best and worst
709 will become inaccessible and new special stream synonyms
710 best-unfiltered and worst-unfiltered can be used as a fallback
711 selection method.
712
713 Uses a filter expression in the format:
714
715 [operator]<value>
716
717 Valid operators are >, >=, < and <=. If no operator is specified
718 then equality is tested.
719
720 For example this will exclude streams ranked higher than "480p":
721
722 ">480p"
723
724 Multiple filters can be used by separating each expression with
725 a comma.
726
727 For example this will exclude streams from two quality types:
728
729 ">480p,>medium"
730
731 Stream transport options
732 --hds-live-edge SECONDS
733 The time live HDS streams will start from the edge of stream.
734
735 Default is: 10.0.
736
737 --hds-segment-attempts ATTEMPTS
738 How many attempts should be done to download each HDS segment
739 before giving up.
740
741 Default is: 3.
742
743 --hds-segment-threads THREADS
744 The size of the thread pool used to download HDS segments. Mini‐
745 mum value is 1 and maximum is 10.
746
747 Default is: 1.
748
749 --hds-segment-timeout TIMEOUT
750 HDS segment connect and read timeout.
751
752 Default is: 10.0.
753
754 --hds-timeout TIMEOUT
755 Timeout for reading data from HDS streams.
756
757 Default is: 60.0.
758
759 --hls-live-edge SEGMENTS
760 How many segments from the end to start live HLS streams on.
761
762 The lower the value the lower latency from the source you will
763 be, but also increases the chance of buffering.
764
765 Default is: 3.
766
767 --hls-segment-attempts ATTEMPTS
768 How many attempts should be done to download each HLS segment
769 before giving up.
770
771 Default is: 3.
772
773 --hls-playlist-reload-attempts ATTEMPTS
774 How many attempts should be done to reload the HLS playlist
775 before giving up.
776
777 Default is: 3.
778
779 --hls-segment-threads THREADS
780 The size of the thread pool used to download HLS segments. Mini‐
781 mum value is 1 and maximum is 10.
782
783 Default is: 1.
784
785 --hls-segment-timeout TIMEOUT
786 HLS segment connect and read timeout.
787
788 Default is: 10.0.
789
790 --hls-segment-ignore-names NAMES
791 A comma-delimited list of segment names that will not be
792 fetched.
793
794 Example: --hls-segment-ignore-names 000,001,002
795
796 This will ignore every segment that ends with 000.ts, 001.ts and
797 002.ts
798
799 Default is: None.
800
801 NOTE:
802 The --hls-timeout must be increased, to a time that is longer
803 than the ignored break.
804
805 --hls-segment-key-uri URI
806 URI to segment encryption key. If no URI is specified, the URI
807 contained in the segments will be used.
808
809 Example: --hls-segment-key-uri "‐
810 https://example.com/hls/encryption_key"
811
812 Default is: None.
813
814 --hls-audio-select CODE
815 Selects a specific audio source or sources, by language code or
816 name, when multiple audio sources are available. Can be * to
817 download all audio sources.
818
819 Examples:
820
821 --hls-audio-select "English,German"
822 --hls-audio-select "en,de"
823 --hls-audio-select "*"
824
825 NOTE:
826 This is only useful in special circumstances where the regu‐
827 lar locale option fails, such as when multiple sources of the
828 same language exists.
829
830 --hls-timeout TIMEOUT
831 Timeout for reading data from HLS streams.
832
833 Default is: 60.0.
834
835 --hls-start-offset [HH:]MM:SS
836 Amount of time to skip from the beginning of the stream. For
837 live streams, this is a negative offset from the end of the
838 stream (rewind).
839
840 Default is: 00:00:00.
841
842 --hls-duration [HH:]MM:SS
843 Limit the playback duration, useful for watching segments of a
844 stream. The actual duration may be slightly longer, as it is
845 rounded to the nearest HLS segment.
846
847 Default is: unlimited.
848
849 --hls-live-restart
850 Skip to the beginning of a live stream, or as far back as possi‐
851 ble.
852
853 --http-stream-timeout TIMEOUT
854 Timeout for reading data from HTTP streams.
855
856 Default is: 60.0.
857
858 --ringbuffer-size SIZE
859 The maximum size of ringbuffer. Add a M or K suffix to specify
860 mega or kilo bytes instead of bytes.
861
862 The ringbuffer is used as a temporary storage between the stream
863 and the player. This is to allows us to download the stream
864 faster than the player wants to read it.
865
866 The smaller the size, the higher chance of the player buffering
867 if there are download speed dips and the higher size the more
868 data we can use as a storage to catch up from speed dips.
869
870 It also allows you to temporary pause as long as the ringbuffer
871 doesn't get full since we continue to download the stream in the
872 background.
873
874 Default is: "16M".
875
876 NOTE:
877 A smaller size is recommended on lower end systems (such as
878 Raspberry Pi) when playing stream types that require some
879 extra processing (such as HDS) to avoid unnecessary back‐
880 ground processing.
881
882 --rtmp-proxy PROXY, --rtmpdump-proxy PROXY
883 A SOCKS proxy that RTMP streams will use.
884
885 Example: 127.0.0.1:9050
886
887 --rtmp-rtmpdump FILENAME, --rtmpdump FILENAME
888 RTMPDump is used to access RTMP streams. You can specify the
889 location of the rtmpdump executable if it is not in your PATH.
890
891 Example: "/usr/local/bin/rtmpdump"
892
893 --rtmp-timeout TIMEOUT
894 Timeout for reading data from RTMP streams.
895
896 Default is: 60.0.
897
898 --stream-segment-attempts ATTEMPTS
899 How many attempts should be done to download each segment before
900 giving up.
901
902 This is generic option used by streams not covered by other
903 options, such as stream protocols specific to plugins, e.g.
904 UStream.
905
906 Default is: 3.
907
908 --stream-segment-threads THREADS
909 The size of the thread pool used to download segments. Minimum
910 value is 1 and maximum is 10.
911
912 This is generic option used by streams not covered by other
913 options, such as stream protocols specific to plugins, e.g.
914 UStream.
915
916 Default is: 1.
917
918 --stream-segment-timeout TIMEOUT
919 Segment connect and read timeout.
920
921 This is generic option used by streams not covered by other
922 options, such as stream protocols specific to plugins, e.g.
923 UStream.
924
925 Default is: 10.0.
926
927 --stream-timeout TIMEOUT
928 Timeout for reading data from streams.
929
930 This is generic option used by streams not covered by other
931 options, such as stream protocols specific to plugins, e.g.
932 UStream.
933
934 Default is: 60.0.
935
936 --stream-url
937 If possible, translate the stream to a URL and print it.
938
939 --subprocess-cmdline, --cmdline, -c
940 Print the command-line used internally to play the stream.
941
942 This is only available on RTMP streams.
943
944 --subprocess-errorlog, --errorlog, -e
945 Log possible errors from internal subprocesses to a temporary
946 file. The file will be saved in your systems temporary direc‐
947 tory.
948
949 Useful when debugging rtmpdump related issues.
950
951 --subprocess-errorlog-path PATH, --errorlog-path PATH
952 Log the subprocess errorlog to a specific file rather than a
953 temporary file. Takes precedence over subprocess-errorlog.
954
955 Useful when debugging rtmpdump related issues.
956
957 --ffmpeg-ffmpeg FILENAME
958 FFMPEG is used to access or mux separate video and audio
959 streams. You can specify the location of the ffmpeg executable
960 if it is not in your PATH.
961
962 Example: "/usr/local/bin/ffmpeg"
963
964 --ffmpeg-verbose
965 Write the console output from ffmpeg to the console.
966
967 --ffmpeg-verbose-path PATH
968 Path to write the output from the ffmpeg console.
969
970 --ffmpeg-video-transcode CODEC
971 When muxing streams transcode the video to this CODEC.
972
973 Default is: "copy".
974
975 Example: "h264"
976
977 --ffmpeg-audio-transcode CODEC
978 When muxing streams transcode the audio to this CODEC.
979
980 Default is: "copy".
981
982 Example: "aac"
983
984 HTTP options
985 --http-proxy HTTP_PROXY
986 A HTTP proxy to use for all HTTP requests.
987
988 Example: "http://hostname:port/"
989
990 --https-proxy HTTPS_PROXY
991 A HTTPS capable proxy to use for all HTTPS requests.
992
993 Example: "https://hostname:port/"
994
995 --http-cookie KEY=VALUE
996 A cookie to add to each HTTP request.
997
998 Can be repeated to add multiple cookies.
999
1000 --http-header KEY=VALUE
1001 A header to add to each HTTP request.
1002
1003 Can be repeated to add multiple headers.
1004
1005 --http-query-param KEY=VALUE
1006 A query parameter to add to each HTTP request.
1007
1008 Can be repeated to add multiple query parameters.
1009
1010 --http-ignore-env
1011 Ignore HTTP settings set in the environment such as environment
1012 variables (HTTP_PROXY, etc) or ~/.netrc authentication.
1013
1014 --http-no-ssl-verify
1015 Don't attempt to verify SSL certificates.
1016
1017 Usually a bad idea, only use this if you know what you're doing.
1018
1019 --http-disable-dh
1020 Disable Diffie Hellman key exchange
1021
1022 Usually a bad idea, only use this if you know what you're doing.
1023
1024 --http-ssl-cert FILENAME
1025 SSL certificate to use.
1026
1027 Expects a .pem file.
1028
1029 --http-ssl-cert-crt-key CRT_FILENAME KEY_FILENAME
1030 SSL certificate to use.
1031
1032 Expects a .crt and a .key file.
1033
1034 --http-timeout TIMEOUT
1035 General timeout used by all HTTP requests except the ones cov‐
1036 ered by other options.
1037
1038 Default is: 20.0.
1039
1040 Plugin options
1041 --abweb-username USERNAME
1042 The username associated with your ABweb account, required to
1043 access any ABweb stream.
1044
1045 --abweb-password PASSWORD
1046 A ABweb account password to use with --abweb-username.
1047
1048 --abweb-purge-credentials
1049 Purge cached ABweb credentials to initiate a new session and
1050 reauthenticate.
1051
1052 --afreeca-username USERNAME
1053 The username used to register with afreecatv.com.
1054
1055 --afreeca-password PASSWORD
1056 A afreecatv.com account password to use with --afreeca-username.
1057
1058 --animelab-email EMAIL
1059 The email address used to register with animelab.com.
1060
1061 --animelab-password PASSWORD
1062 A animelab.com account password to use with --animelab-email.
1063
1064 --bbciplayer-username USERNAME
1065 The username used to register with bbc.co.uk.
1066
1067 --bbciplayer-password PASSWORD
1068 A bbc.co.uk account password to use with --bbciplayer-username.
1069
1070 --bbciplayer-hd
1071 Prefer HD streams over local SD streams, some live programmes
1072 may not be broadcast in HD.
1073
1074 --btsports-email EMAIL
1075 The email associated with your BT Sport account, required to
1076 access any BT Sport stream.
1077
1078 --btsports-password PASSWORD
1079 Your BT Sport account password.
1080
1081 --btv-username USERNAME
1082 A BTV username required to access any stream.
1083
1084 --btv-password PASSWORD
1085 A BTV account password to use with --btv-username.
1086
1087 --crunchyroll-username USERNAME
1088 A Crunchyroll username to allow access to restricted streams.
1089
1090 --crunchyroll-password [PASSWORD]
1091 A Crunchyroll password for use with --crunchyroll-username.
1092
1093 If left blank you will be prompted.
1094
1095 --crunchyroll-purge-credentials
1096 Purge cached Crunchyroll credentials to initiate a new session
1097 and reauthenticate.
1098
1099 --crunchyroll-session-id SESSION_ID
1100 Set a specific session ID for crunchyroll, can be used to bypass
1101 region restrictions. If using an authenticated session ID, it is
1102 recommended that the authentication parameters be omitted as the
1103 session ID is account specific.
1104
1105 NOTE:
1106 The session ID will be overwritten if authentication is used
1107 and the session ID does not match the account.
1108
1109 --funimation-email
1110 Email address for your Funimation account.
1111
1112 --funimation-password
1113 Password for your Funimation account.
1114
1115 --funimation-language
1116 The audio language to use for the stream; japanese or english.
1117
1118 Default is: "english".
1119
1120 --funimation-mux-subtitles
1121 Enable automatically including available subtitles in to the
1122 output stream.
1123
1124 --liveedu-email EMAIL
1125 The email address used to register with liveedu.tv.
1126
1127 --liveedu-password PASSWORD
1128 A LiveEdu account password to use with --liveedu-email.
1129
1130 --npo-subtitles
1131 Include subtitles for the deaf or hard of hearing, if available.
1132
1133 --openrectv-email EMAIL
1134 The email associated with your openrectv account, required to
1135 access any openrectv stream.
1136
1137 --openrectv-password PASSWORD
1138 An openrectv account password to use with --openrectv-email.
1139
1140 --pixiv-username USERNAME
1141 The email/username used to register with pixiv.net
1142
1143 --pixiv-password PASSWORD
1144 A pixiv.net account password to use with --pixiv-username
1145
1146 --pixiv-purge-credentials
1147 Purge cached Pixiv credentials to initiate a new session and
1148 reauthenticate.
1149
1150 --pixiv-performer USER
1151 Select a co-host stream instead of the owner stream.
1152
1153 --pluzz-mux-subtitles
1154 Automatically mux available subtitles in to the output stream.
1155
1156 --rtve-mux-subtitles
1157 Automatically mux available subtitles in to the output stream.
1158
1159 --sbscokr-id CHANNELID
1160 Channel ID to play.
1161
1162 Example:
1163
1164 streamlink http://play.sbs.co.kr/onair/pc/index.html best --sbscokr-id S01
1165
1166 --schoolism-email EMAIL
1167 The email associated with your Schoolism account, required to
1168 access any Schoolism stream.
1169
1170 --schoolism-password PASSWORD
1171 A Schoolism account password to use with --schoolism-email.
1172
1173 --schoolism-part PART
1174 Play part number PART of the lesson, or assignment feedback
1175 video.
1176
1177 Defaults is 1.
1178
1179 --steam-email EMAIL
1180 A Steam account email address to access friends/private streams
1181
1182 --steam-password PASSWORD
1183 A Steam account password to use with --steam-email.
1184
1185 --tvplayer-email EMAIL
1186 The email address used to register with tvplayer.com.
1187
1188 --tvplayer-password PASSWORD
1189 The password for your tvplayer.com account.
1190
1191 --twitch-oauth-token TOKEN
1192 An OAuth token to use for Twitch authentication. Use
1193 --twitch-oauth-authenticate to create a token.
1194
1195 --twitch-cookie COOKIES
1196 Twitch cookies to authenticate to allow access to subscription
1197 channels.
1198
1199 Example:
1200
1201 "_twitch_session_id=xxxxxx; persistent=xxxxx"
1202
1203 NOTE:
1204 This method is the old and clunky way of authenticating with
1205 Twitch, using --twitch-oauth-authenticate is the recommended
1206 and simpler way of doing it now.
1207
1208 --twitch-disable-hosting
1209 Do not open the stream if the target channel is hosting another
1210 channel.
1211
1212 --twitch-disable-ads
1213 Skip embedded advertisement segments at the beginning or during
1214 a stream. Will cause these segments to be missing from the
1215 stream.
1216
1217 --ustream-password PASSWORD
1218 A password to access password protected UStream.tv channels.
1219
1220 --ustvnow-username USERNAME
1221 Your USTV Now account username
1222
1223 --ustvnow-password PASSWORD
1224 Your USTV Now account password
1225
1226 --ustvnow-station-code CODE
1227 USTV Now station code
1228
1229 --wwenetwork-email EMAIL
1230 The email associated with your WWE Network account, required to
1231 access any WWE Network stream.
1232
1233 --wwenetwork-password PASSWORD
1234 A WWE Network account password to use with --wwenetwork-email.
1235
1236 --yupptv-email EMAIL
1237 Your YuppTV account email
1238
1239 --yupptv-password PASSWORD
1240 Your YuppTV account password.
1241
1242 --zattoo-email EMAIL
1243 The email associated with your zattoo account, required to
1244 access any zattoo stream.
1245
1246 --zattoo-password PASSWORD
1247 A zattoo account password to use with --zattoo-email.
1248
1249 --zattoo-purge-credentials
1250 Purge cached zattoo credentials to initiate a new session and
1251 reauthenticate.
1252
1253 --zattoo-stream-types TYPES
1254 A comma-delimited list of stream types which should be used, the
1255 following types are allowed:
1256
1257 · dash
1258
1259 · hls
1260
1261 · hls5
1262
1263 Default is: "hls".
1264
1266 Streamlink Contributors
1267
1269 2019, Streamlink
1270
1271
1272
1273
12741.1.1 Apr 03, 2019 STREAMLINK(1)