1STREAMLINK(1)                     Streamlink                     STREAMLINK(1)
2
3
4

NAME

6       streamlink - extracts streams from various services and pipes them into
7       a video player of choice
8

TUTORIAL

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

CONFIGURATION FILE

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

PLUGIN SPECIFIC CONFIGURATION FILE

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

PLUGIN SPECIFIC USAGE

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

SIDELOADING PLUGINS

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

PLAYING BUILT-IN STREAMING PROTOCOLS DIRECTLY

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

PROXY SUPPORT

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

COMMAND-LINE USAGE

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

AUTHOR

1266       Streamlink Contributors
1267
1269       2019, Streamlink
1270
1271
1272
1273
12741.1.1                            Apr 03, 2019                    STREAMLINK(1)
Impressum