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 a command-line application, which means that the commands
11       described here should be typed into a terminal. On Windows, you have to
12       open either the command prompt or the PowerShell,  on  macOS  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  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(s)
33          URLs, 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, simply add the stream name as a
49       second argument to the streamlink command:
50
51          $ streamlink twitch.tv/day9tv 1080p60
52          [cli][info] Found matching plugin twitch for URL twitch.tv/day9tv
53          [cli][info] Opening stream: 1080p60 (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 to start the highest quality stream and not be
58       bothered with what it's named. To do this, just  specify  best  as  the
59       stream  name  and  Streamlink will attempt to rank the streams and open
60       the one of highest quality. You can also specify worst to get the  low‐
61       est quality.
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, including WebSocket
987              connections.  By default this proxy will be used for  all  HTTPS
988              requests too.
989
990              Example: "http://hostname:port/"
991
992       --https-proxy HTTPS_PROXY
993              A HTTPS capable proxy to use for all HTTPS requests.
994
995              Example: "https://hostname:port/"
996
997       --http-cookie KEY=VALUE
998              A cookie to add to each HTTP request.
999
1000              Can be repeated to add multiple cookies.
1001
1002       --http-header KEY=VALUE
1003              A header to add to each HTTP request.
1004
1005              Can be repeated to add multiple headers.
1006
1007       --http-query-param KEY=VALUE
1008              A query parameter to add to each HTTP request.
1009
1010              Can be repeated to add multiple query parameters.
1011
1012       --http-ignore-env
1013              Ignore  HTTP settings set in the environment such as environment
1014              variables (HTTP_PROXY, etc) or ~/.netrc authentication.
1015
1016       --http-no-ssl-verify
1017              Don't attempt to verify SSL certificates.
1018
1019              Usually a bad idea, only use this if you know what you're doing.
1020
1021       --http-disable-dh
1022              Disable Diffie Hellman key exchange
1023
1024              Usually a bad idea, only use this if you know what you're doing.
1025
1026       --http-ssl-cert FILENAME
1027              SSL certificate to use.
1028
1029              Expects a .pem file.
1030
1031       --http-ssl-cert-crt-key CRT_FILENAME KEY_FILENAME
1032              SSL certificate to use.
1033
1034              Expects a .crt and a .key file.
1035
1036       --http-timeout TIMEOUT
1037              General timeout used by all HTTP requests except the  ones  cov‐
1038              ered by other options.
1039
1040              Default is: 20.0.
1041
1042   Plugin options
1043       --abweb-username USERNAME
1044              The  username  associated  with  your ABweb account, required to
1045              access any ABweb stream.
1046
1047       --abweb-password PASSWORD
1048              A ABweb account password to use with --abweb-username.
1049
1050       --abweb-purge-credentials
1051              Purge cached ABweb credentials to initiate  a  new  session  and
1052              reauthenticate.
1053
1054       --afreeca-username USERNAME
1055              The username used to register with afreecatv.com.
1056
1057       --afreeca-password PASSWORD
1058              A afreecatv.com account password to use with --afreeca-username.
1059
1060       --animelab-email EMAIL
1061              The email address used to register with animelab.com.
1062
1063       --animelab-password PASSWORD
1064              A animelab.com account password to use with --animelab-email.
1065
1066       --bbciplayer-username USERNAME
1067              The username used to register with bbc.co.uk.
1068
1069       --bbciplayer-password PASSWORD
1070              A bbc.co.uk account password to use with --bbciplayer-username.
1071
1072       --bbciplayer-hd
1073              Prefer  HD  streams  over local SD streams, some live programmes
1074              may not be broadcast in HD.
1075
1076       --btsports-email EMAIL
1077              The email associated with your BT  Sport  account,  required  to
1078              access any BT Sport stream.
1079
1080       --btsports-password PASSWORD
1081              Your BT Sport account password.
1082
1083       --btv-username USERNAME
1084              A BTV username required to access any stream.
1085
1086       --btv-password PASSWORD
1087              A BTV account password to use with --btv-username.
1088
1089       --clubbingtv-username
1090              The username used to register with Clubbing TV.
1091
1092       --clubbingtv-password
1093              A     Clubbing    TV    account    password    to    use    with
1094              --clubbingtv-username.
1095
1096       --crunchyroll-username USERNAME
1097              A Crunchyroll username to allow access to restricted streams.
1098
1099       --crunchyroll-password [PASSWORD]
1100              A Crunchyroll password for use with --crunchyroll-username.
1101
1102              If left blank you will be prompted.
1103
1104       --crunchyroll-purge-credentials
1105              Purge cached Crunchyroll credentials to initiate a  new  session
1106              and reauthenticate.
1107
1108       --crunchyroll-session-id SESSION_ID
1109              Set a specific session ID for crunchyroll, can be used to bypass
1110              region restrictions. If using an authenticated session ID, it is
1111              recommended that the authentication parameters be omitted as the
1112              session ID is account specific.
1113
1114              NOTE:
1115                 The session ID will be overwritten if authentication is  used
1116                 and the session ID does not match the account.
1117
1118       --funimation-email
1119              Email address for your Funimation account.
1120
1121       --funimation-password
1122              Password for your Funimation account.
1123
1124       --funimation-language
1125              The audio language to use for the stream; japanese or english.
1126
1127              Default is: "english".
1128
1129       --funimation-mux-subtitles
1130              Enable  automatically  including  available  subtitles in to the
1131              output stream.
1132
1133       --liveedu-email EMAIL
1134              The email address used to register with liveedu.tv.
1135
1136       --liveedu-password PASSWORD
1137              A LiveEdu account password to use with --liveedu-email.
1138
1139       --openrectv-email EMAIL
1140              The email associated with your openrectv  account,  required  to
1141              access any openrectv stream.
1142
1143       --openrectv-password PASSWORD
1144              An openrectv account password to use with --openrectv-email.
1145
1146       --pixiv-username USERNAME
1147              The email/username used to register with pixiv.net
1148
1149       --pixiv-password PASSWORD
1150              A pixiv.net account password to use with --pixiv-username
1151
1152       --pixiv-sessionid SESSIONID
1153              The  pixiv.net sessionid that's used in pixivs PHPSESSID cookie.
1154              can be used instead of the username/password login process.
1155
1156       --pixiv-devicetoken DEVICETOKEN
1157              The pixiv.net device token that's used  in  pixivs  device_token
1158              cookie.   can  be  used  instead  of the username/password login
1159              process.
1160
1161       --pixiv-purge-credentials
1162              Purge cached Pixiv credentials to initiate  a  new  session  and
1163              reauthenticate.
1164
1165       --pixiv-performer USER
1166              Select a co-host stream instead of the owner stream.
1167
1168       --pluzz-mux-subtitles
1169              Automatically mux available subtitles in to the output stream.
1170
1171       --rtve-mux-subtitles
1172              Automatically mux available subtitles in to the output stream.
1173
1174       --sbscokr-id CHANNELID
1175              Channel ID to play.
1176
1177              Example:
1178
1179                 streamlink http://play.sbs.co.kr/onair/pc/index.html best --sbscokr-id S01
1180
1181       --schoolism-email EMAIL
1182              The  email  associated  with your Schoolism account, required to
1183              access any Schoolism stream.
1184
1185       --schoolism-password PASSWORD
1186              A Schoolism account password to use with --schoolism-email.
1187
1188       --schoolism-part PART
1189              Play part number PART of  the  lesson,  or  assignment  feedback
1190              video.
1191
1192              Defaults is 1.
1193
1194       --steam-email EMAIL
1195              A Steam account email address to access friends/private streams
1196
1197       --steam-password PASSWORD
1198              A Steam account password to use with --steam-email.
1199
1200       --tvplayer-email EMAIL
1201              The email address used to register with tvplayer.com.
1202
1203       --tvplayer-password PASSWORD
1204              The password for your tvplayer.com account.
1205
1206       --twitch-oauth-token TOKEN
1207              An   OAuth   token   to  use  for  Twitch  authentication.   Use
1208              --twitch-oauth-authenticate to create a token.
1209
1210       --twitch-cookie COOKIES
1211              Twitch cookies to authenticate to allow access  to  subscription
1212              channels.
1213
1214              Example:
1215
1216                 "_twitch_session_id=xxxxxx; persistent=xxxxx"
1217
1218              NOTE:
1219                 This  method is the old and clunky way of authenticating with
1220                 Twitch, using --twitch-oauth-authenticate is the  recommended
1221                 and simpler way of doing it now.
1222
1223       --twitch-disable-hosting
1224              Do  not open the stream if the target channel is hosting another
1225              channel.
1226
1227       --twitch-disable-ads
1228              Skip embedded advertisement segments at the beginning or  during
1229              a  stream.   Will  cause  these  segments to be missing from the
1230              stream.
1231
1232       --twitch-disable-reruns
1233              Do not open the stream if the target channel is currently broad‐
1234              casting a rerun.
1235
1236       --ustream-password PASSWORD
1237              A password to access password protected UStream.tv channels.
1238
1239       --ustvnow-username USERNAME
1240              Your USTV Now account username
1241
1242       --ustvnow-password PASSWORD
1243              Your USTV Now account password
1244
1245       --vimeo-mux-subtitles
1246              Automatically mux available subtitles in to the output stream.
1247
1248       --wwenetwork-email EMAIL
1249              The  email associated with your WWE Network account, required to
1250              access any WWE Network stream.
1251
1252       --wwenetwork-password PASSWORD
1253              A WWE Network account password to use with --wwenetwork-email.
1254
1255       --yupptv-email EMAIL
1256              Your YuppTV account email
1257
1258       --yupptv-password PASSWORD
1259              Your YuppTV account password.
1260
1261       --zattoo-email EMAIL
1262              The email associated  with  your  zattoo  account,  required  to
1263              access any zattoo stream.
1264
1265       --zattoo-password PASSWORD
1266              A zattoo account password to use with --zattoo-email.
1267
1268       --zattoo-purge-credentials
1269              Purge  cached  zattoo  credentials to initiate a new session and
1270              reauthenticate.
1271
1272       --zattoo-stream-types TYPES
1273              A comma-delimited list of stream types which should be used, the
1274              following types are allowed:
1275
1276              · dash
1277
1278              · hls
1279
1280              · hls5
1281
1282              Default is: "hls".
1283

AUTHOR

1285       Streamlink Contributors
1286
1288       2020, Streamlink
1289
1290
1291
1292
12931.3.1                            Jan 28, 2020                    STREAMLINK(1)
Impressum