1STREAMLINK(1) Streamlink STREAMLINK(1)
2
3
4
6 streamlink - extracts streams from various services and pipes them into
7 a video player of choice
8
10 streamlink [OPTIONS] <URL> [STREAM]
11
13 streamlink --loglevel debug youtu.be/VIDEO-ID best
14 streamlink --player mpv --player-args '--no-border --no-keepaspect-window' twitch.tv/CHANNEL 1080p60
15 streamlink --player-external-http --player-external-http-port 8888 URL STREAM
16 streamlink --output /path/to/file --http-timeout 60 URL STREAM
17 streamlink --stdout URL STREAM | ffmpeg -i pipe:0 ...
18 streamlink --http-header 'Authorization=OAuth TOKEN' --http-header 'Referer=URL' URL STREAM
19 streamlink --hls-live-edge 5 --stream-segment-threads 5 'hls://https://host/playlist.m3u8' best
20 streamlink --twitch-low-latency -p mpv -a '--cache=yes --demuxer-max-back-bytes=2G' twitch.tv/CHANNEL best
21
23 Positional arguments
24 URL A URL to attempt to extract streams from.
25
26 Usually, the protocol of http(s) URLs can be omitted (https://),
27 depending on the implementation of the plugin being used.
28
29 Alternatively, the URL can also be specified by using the --url
30 option.
31
32 STREAM Stream to play.
33
34 Use best or worst for selecting the highest or lowest available
35 quality.
36
37 Fallback streams can be specified by using a comma-separated
38 list:
39
40 "720p,480p,best"
41
42 If no stream is specified and --default-stream is not used, then
43 a list of available streams will be printed.
44
45 General options
46 -h
47
48 --help Show this help message and exit.
49
50 -V
51
52 --version
53 Show version number and exit.
54
55 --plugins
56 Print a list of all currently installed plugins.
57
58 --plugin-dirs DIRECTORY
59 Attempts to load plugins from these directories.
60
61 Multiple directories can be used by separating them with a
62 comma.
63
64 --can-handle-url URL
65 Check if Streamlink has a plugin that can handle the specified
66 URL.
67
68 Returns status code 1 for false and 0 for true.
69
70 Useful for external scripting.
71
72 --can-handle-url-no-redirect URL
73 Same as --can-handle-url but without following redirects when
74 looking up the URL.
75
76 --config FILENAME
77 Load options from this config file.
78
79 Can be repeated to load multiple files, in which case the op‐
80 tions are merged on top of each other where the last config has
81 highest priority.
82
83 --no-config
84 Disable loading any default or custom config files.
85
86 -l LEVEL
87
88 --loglevel LEVEL
89 Set the log message threshold.
90
91 Valid levels are, in order of increasing verbosity:
92
93 none, critical, error, warning, info, debug, trace, all
94
95 Default is: "info".
96
97 --logfile FILE
98 Append log output to FILE instead of writing to stdout/stderr.
99
100 User prompts and download progress won't be written to FILE.
101
102 A value of - (dash) will set the file name to an ISO8601-like
103 string and will choose the following default log directories.
104
105 Windows:
106
107 %TEMP%\streamlink\logs
108
109 macOS:
110
111 ${HOME}/Library/Logs/streamlink
112
113 Linux/BSD:
114
115 ${XDG_STATE_HOME:-${HOME}/.local/state}/streamlink/logs
116
117 -Q
118
119 --quiet
120 Hide all log output.
121
122 Alias for --loglevel none.
123
124 -j
125
126 --json Output JSON representations instead of the normal text output.
127
128 Useful for external scripting.
129
130 --auto-version-check {yes,true,1,on,no,false,0,off}
131 Enable or disable the automatic check for a new version of
132 Streamlink.
133
134 Default is: "no".
135
136 --version-check
137 Runs a version check and exits.
138
139 --locale LOCALE
140 The preferred locale setting, for selecting the preferred subti‐
141 tle and audio language.
142
143 The locale is formatted as [language_code]_[country_code], eg.
144 en_US or es_ES.
145
146 Default is: system locale.
147
148 --interface INTERFACE
149 Set the network interface.
150
151 -4
152
153 --ipv4 Resolve address names to IPv4 only. This option overrides
154 --ipv6.
155
156 -6
157
158 --ipv6 Resolve address names to IPv6 only. This option overrides
159 --ipv4.
160
161 Player options
162 -p PATH
163
164 --player PATH
165 The player executable that will be launched (unless a different
166 output method was chosen).
167
168 Either set an absolute or relative path to the player exe‐
169 cutable, or just set the executable's name if it can be resolved
170 from the paths of the system's PATH environment variable.
171
172 In addition to setting the player executable path, custom player
173 arguments can be set via --player-args.
174
175 NOTE:
176 In the past, --player allowed defining additional player ar‐
177 guments, which as a consequence required wrapping player
178 paths that contained spaces in quotation marks. This is un‐
179 supported since release 6.0.0.
180
181 Default is: VLC player, if available.
182
183 -a ARGUMENTS
184
185 --player-args ARGUMENTS
186 This option allows the arguments which are used to launch the
187 player process to be customized.
188
189 The value can contain formatting variables surrounded by curly
190 braces, { and }. Curly brace characters can be escaped by dou‐
191 bling, e.g. {{ and }}.
192
193 Available formatting variables:
194
195 {playerinput}
196 This is the input argument that the player will receive.
197 For standard input (stdin), it is - (dash), but it can
198 also be a file path or URL, depending on the options
199 used. If unset, then the player input argument will be
200 appended to the parsed player arguments list.
201
202 {playertitleargs}
203 The automatically generated player title arguments, if a
204 supported player was found. See --title for more. If un‐
205 set, automatically generated player title arguments will
206 be prepended to the parsed player arguments list.
207
208 Example:
209
210 streamlink -p vlc -a "--play-and-exit --no-one-instance" <url> [stream]
211
212 Default is: "".
213
214 --player-env KEY=VALUE
215 Add an additional environment variable to the spawned player
216 process, in addition to the ones inherited from the Stream‐
217 link/Python parent process. This allows setting player environ‐
218 ment variables in config files.
219
220 Can be repeated to add multiple environment variables.
221
222 -v
223
224 --verbose-player
225 Allow the player to display its console output.
226
227 -n
228
229 --player-fifo
230
231 --fifo Make the player read the stream through a named pipe instead of
232 the stdin pipe.
233
234 --player-http
235 Make the player read the stream through HTTP instead of the
236 stdin pipe.
237
238 --player-continuous-http
239 Make the player read the stream through HTTP, but unlike
240 --player-http it will continuously try to open the stream if the
241 player requests it.
242
243 This makes it possible to handle stream disconnects if your
244 player is capable of reconnecting to a HTTP stream. This is usu‐
245 ally done by setting your player to a "repeat mode".
246
247 --player-external-http
248 Serve stream data through HTTP without running any player. This
249 is useful to allow external devices like smartphones or stream‐
250 ing boxes to watch streams they wouldn't be able to otherwise.
251
252 The default behavior is similar to the --player-continuous-http
253 option, but no player program will be started, and the server
254 will listen on all available connections instead of just in the
255 local (loopback) interface.
256
257 See --player-external-http-interface for choosing a specific
258 network interface, and see --player-external-http-port for
259 choosing a non-randomized port.
260
261 Optionally, the --player-external-http-continuous option allows
262 for disabling the continuous run-mode, so that Streamlink will
263 stop when the stream ends.
264
265 The URLs that can be used to access the stream will be printed
266 to the console, and the server can be interrupted using CTRL-C.
267
268 --player-external-http-continuous {yes,true,1,on,no,false,0,off}
269 Set the run-mode of --player-external-http to continuous or
270 non-continuous.
271
272 In the continuous run-mode, Streamlink will keep running after
273 the stream has ended and will wait for the next HTTP request be‐
274 ing made unless it gets shut down via CTRL-C.
275
276 If set to non-continuous, Streamlink will stop once the stream
277 has ended.
278
279 Default is: true.
280
281 --player-external-http-interface INTERFACE
282 The network interface on which the HTTP server will be listening
283 on. If unset or set to 0.0.0.0, all available interfaces will
284 be bound.
285
286 --player-external-http-port PORT
287 A fixed port to use for the external HTTP server if that mode is
288 enabled. Omit or set to 0 to use a random high ( >1024) port.
289
290 --player-passthrough TYPES
291 A comma-delimited list of stream types to pass to the player as
292 a URL to let it handle the transport of the stream instead.
293
294 Stream types that can be converted into a playable URL are:
295
296 • hls
297
298 • http
299
300 Make sure your player can handle the stream type when using
301 this.
302
303 --player-no-close
304 By default Streamlink will close the player when the stream
305 ends. This is to avoid "dead" GUI players lingering after a
306 stream ends.
307
308 It does however have the side-effect of sometimes closing a
309 player before it has played back all of its cached data.
310
311 This option will instead let the player decide when to exit.
312
313 -t TITLE
314
315 --title TITLE
316 Change the title of the video player's window.
317
318 Please see the "Metadata variables" section of Streamlink's CLI
319 documentation for all available metadata variables, as well as
320 the "Plugins" section for the list of metadata variables defined
321 in each plugin.
322
323 This option is only supported for the following players: mpv,
324 potplayer, vlc
325
326 VLC specific information:
327 VLC does support special formatting variables on its own:
328 https://wiki.videolan.org/Documentation:Format_String/
329
330 These variables are accessible in the --title option by
331 adding a backslash in front of the dollar sign which VLC
332 uses as its formatting character.
333
334 For example, to put the current date in your VLC window
335 title, the string \$A could be inserted inside the
336 --title string.
337
338 Example:
339
340 streamlink -p mpv --title "{author} - {category} - {title}" <URL> [STREAM]
341
342 File output options
343 -o FILENAME
344
345 --output FILENAME
346 Write stream data to FILENAME instead of playing it. If FILENAME
347 is set to - (dash), then the stream data will be written to std‐
348 out, similar to the --stdout argument.
349
350 Non-existent directories and subdirectories will be created if
351 they do not exist, if filesystem permissions allow.
352
353 You will be prompted if the file already exists.
354
355 Please see the "Metadata variables" section of Streamlink's CLI
356 documentation for all available metadata variables, as well as
357 the "Plugins" section for the list of metadata variables defined
358 in each plugin.
359
360 Unsupported characters in substituted variables will be replaced
361 with an underscore.
362
363 Example:
364
365 streamlink --output "~/recordings/{author}/{category}/{id}-{time:%Y%m%d%H%M%S}.ts" <URL> [STREAM]
366
367 -O
368
369 --stdout
370 Write stream data to stdout instead of playing it.
371
372 -r FILENAME
373
374 --record FILENAME
375 Open the stream in the player, while at the same time writing it
376 to FILENAME. If FILENAME is set to - (dash), then the stream
377 data will be written to stdout, similar to the --stdout argu‐
378 ment, while still opening the player.
379
380 Non-existent directories and subdirectories will be created if
381 they do not exist, if filesystem permissions allow.
382
383 You will be prompted if the file already exists.
384
385 Please see the "Metadata variables" section of Streamlink's CLI
386 documentation for all available metadata variables, as well as
387 the "Plugins" section for the list of metadata variables defined
388 in each plugin.
389
390 Unsupported characters in substituted variables will be replaced
391 with an underscore.
392
393 Example:
394
395 streamlink --record "~/recordings/{author}/{category}/{id}-{time:%Y%m%d%H%M%S}.ts" <URL> [STREAM]
396
397 -R FILENAME
398
399 --record-and-pipe FILENAME
400 Write stream data to stdout, while at the same time writing it
401 to FILENAME.
402
403 Non-existent directories and subdirectories will be created if
404 they do not exist, if filesystem permissions allow.
405
406 You will be prompted if the file already exists.
407
408 Please see the "Metadata variables" section of Streamlink's CLI
409 documentation for all available metadata variables, as well as
410 the "Plugins" section for the list of metadata variables defined
411 in each plugin.
412
413 Unsupported characters in substituted variables will be replaced
414 with an underscore.
415
416 Example:
417
418 streamlink --record-and-pipe "~/recordings/{author}/{category}/{id}-{time:%Y%m%d%H%M%S}.ts" <URL> [STREAM]
419
420 --fs-safe-rules
421 The rules used to make formatting variables filesystem-safe are
422 chosen automatically according to the type of system in use.
423 This overrides the automatic detection.
424
425 Intended for use when Streamlink is running on a UNIX-like OS
426 but writing to Windows filesystems such as NTFS; USB devices us‐
427 ing VFAT or exFAT; CIFS shares that are enforcing Windows file‐
428 name limitations, etc.
429
430 These characters are replaced with an underscore for the rules
431 in use:
432
433 • POSIX: \x00-\x1F /
434
435 • Windows: \x00-\x1F \x7F " * / : < > ? \ |
436
437 -f
438
439 --force
440 When using --output or --record, always write to file even if it
441 already exists (overwrite).
442
443 --progress {yes,force,no}
444 When using --output or --record, show or hide the download
445 progress bar, or force it if there's no terminal.
446
447 Default is: yes.
448
449 --force-progress
450 Deprecated in favor of --progress=force.
451
452 Stream options
453 --url URL
454 A URL to attempt to extract streams from.
455
456 Usually, the protocol of http(s) URLs can be omitted (https://),
457 depending on the implementation of the plugin being used.
458
459 This is an alternative to setting the URL using a positional ar‐
460 gument and can be useful if set in a config file.
461
462 --default-stream STREAM
463 Stream to play.
464
465 Use best or worst for selecting the highest or lowest available
466 quality.
467
468 Fallback streams can be specified by using a comma-separated
469 list:
470
471 "720p,480p,best"
472
473 This is an alternative to setting the stream using a positional
474 argument and can be useful if set in a config file.
475
476 --stream-url
477 If possible, translate the resolved stream to a URL and print
478 it.
479
480 --retry-streams DELAY
481 Retry fetching the list of available streams until streams are
482 found while waiting DELAY second(s) between each attempt. If un‐
483 set, only one attempt will be made to fetch the list of streams
484 available.
485
486 The number of fetch retry attempts can be capped with
487 --retry-max.
488
489 --retry-max COUNT
490 When using --retry-streams, stop retrying the fetch after COUNT
491 retry attempt(s). Fetch will retry infinitely if COUNT is zero
492 or unset.
493
494 If --retry-max is set without setting --retry-streams, the delay
495 between retries will default to 1 second.
496
497 --retry-open ATTEMPTS
498 After a successful fetch, try ATTEMPTS time(s) to open the
499 stream until giving up.
500
501 Default is: 1.
502
503 --stream-types TYPES
504
505 --stream-priority TYPES
506 A comma-delimited list of stream types to allow.
507
508 The order will be used to separate streams when there are multi‐
509 ple streams with the same name but different stream types. Any
510 stream type not listed will be omitted from the available
511 streams list. An * (asterisk) can be used as a wildcard to
512 match any other type of stream, eg. muxed-stream.
513
514 Default is: "hls,http,*".
515
516 --stream-sorting-excludes STREAMS
517 Fine tune the best and worst stream name synonyms by excluding
518 unwanted streams.
519
520 If all of the available streams get excluded, best and worst
521 will become inaccessible and new special stream synonyms
522 best-unfiltered and worst-unfiltered can be used as a fallback
523 selection method.
524
525 Uses a filter expression in the format:
526
527 [operator]<value>
528
529 Valid operators are >, >=, < and <=. If no operator is specified
530 then equality is tested.
531
532 For example this will exclude streams ranked higher than "480p":
533
534 --stream-sorting-excludes ">480p"
535
536 Multiple filters can be used by separating each expression with
537 a comma.
538
539 For example this will exclude streams from two quality types:
540
541 --stream-sorting-excludes ">480p,>medium"
542
543 Stream transport options
544 --ringbuffer-size SIZE
545 The maximum size of the ringbuffer. Mega- or kilobytes can be
546 specified via the M or K suffix respectively.
547
548 The ringbuffer is used as a temporary storage between the stream
549 and the player. This allows Streamlink to download the stream
550 faster than the player which reads the data from the ringbuffer.
551
552 The smaller the size of the ringbuffer, the higher the chance of
553 the player buffering if the download speed decreases, and the
554 higher the size, the more data can be use as a storage to re‐
555 cover from volatile download speeds.
556
557 Most players have their own additional cache and will read the
558 ringbuffer's content as soon as data is available. If the
559 player stops reading data while playback is paused, Streamlink
560 will continue to download the stream in the background as long
561 as the ringbuffer doesn't get full.
562
563 Default is: "16M".
564
565 NOTE:
566 A smaller size is recommended on lower end systems (such as
567 Raspberry Pi) when playing stream types that require some ex‐
568 tra processing to avoid unnecessary background processing.
569
570 --stream-segment-attempts ATTEMPTS
571 How many attempts should be done to download each segment before
572 giving up.
573
574 This applies to all different kinds of segmented stream types,
575 such as DASH, HLS, etc.
576
577 Default is: 3.
578
579 --stream-segment-threads THREADS
580 The size of the thread pool used to download segments. Minimum
581 value is 1 and maximum is 10.
582
583 This applies to all different kinds of segmented stream types,
584 such as DASH, HLS, etc.
585
586 Default is: 1.
587
588 --stream-segment-timeout TIMEOUT
589 Segment connect and read timeout.
590
591 This applies to all different kinds of segmented stream types,
592 such as DASH, HLS, etc.
593
594 Default is: 10.0.
595
596 --stream-timeout TIMEOUT
597 Timeout for reading data from streams.
598
599 This applies to all different kinds of stream types, such as
600 DASH, HLS, HTTP, etc.
601
602 Default is: 60.0.
603
604 --mux-subtitles
605 Automatically mux available subtitles into the output stream.
606
607 Needs to be supported by the used plugin.
608
609 HLS options
610 --hls-live-edge SEGMENTS
611 Number of segments from the live stream's current live position
612 to begin streaming. The size or length of each segment is de‐
613 termined by the streaming provider.
614
615 Lower values will decrease the latency, but will also increase
616 the chance of buffering, as there is less time for Streamlink to
617 download segments and write their data to the output buffer. The
618 number of parallel segment downloads can be set with
619 --stream-segment-threads and the HLS playlist reload time to
620 fetch and queue new segments can be overridden with
621 --hls-playlist-reload-time.
622
623 Default is: 3.
624
625 NOTE:
626 During live playback, the caching/buffering settings of the
627 used player will add additional latency. To adjust this,
628 please refer to the player's own documentation for the re‐
629 quired configuration. Player parameters can be set via
630 --player-args.
631
632 --hls-segment-stream-data
633 Immediately write segment data into output buffer while down‐
634 loading.
635
636 --hls-playlist-reload-attempts ATTEMPTS
637 Max number of attempts when reloading the HLS playlist before
638 giving up.
639
640 Default is: 3.
641
642 --hls-playlist-reload-time TIME
643 Set a custom HLS playlist reload time value, either in seconds
644 or by using one of the following keywords:
645
646 • segment: The duration of the last segment in the current
647 playlist
648
649 • live-edge: The sum of segment durations of the live edge value
650 minus one
651
652 • default: The playlist's target duration metadata
653
654 Default is: default.
655
656 --hls-segment-queue-threshold FACTOR
657 The multiplication factor of the HLS playlist's target duration
658 after which the stream will be stopped early if no new segments
659 were queued after refreshing the playlist (multiple times). The
660 target duration defines the maximum duration a single segment
661 can have, meaning new segments must be available during this
662 time frame, otherwise playback issues can occur.
663
664 The intention of this queue threshold is to be able to stop
665 early when the end of a stream doesn't get announced by the
666 server, so Streamlink doesn't have to wait until a read-timeout
667 occurs. See --stream-timeout.
668
669 Set to 0 to disable.
670
671 Default is: 3.
672
673 --hls-segment-ignore-names NAMES
674 A comma-delimited list of segment names that will get filtered
675 out.
676
677 Example: --hls-segment-ignore-names 000,001,002
678
679 This will ignore every segment that ends with 000.ts, 001.ts and
680 002.ts
681
682 Default is: None.
683
684 --hls-segment-key-uri URI
685 Override the segment encryption key URIs for encrypted streams.
686
687 The value can be templated using the following variables, which
688 will be replaced with their respective part from the source seg‐
689 ment URI:
690
691 {url} {scheme} {netloc} {path} {query}
692
693 Examples:
694
695 --hls-segment-key-uri "https://example.com/hls/encryption_key"
696 --hls-segment-key-uri "{scheme}://1.2.3.4{path}{query}"
697 --hls-segment-key-uri "{scheme}://{netloc}/custom/path/to/key"
698
699 Default is: None.
700
701 --hls-audio-select CODE
702 Selects a specific audio source or sources, by language code or
703 name, when multiple audio sources are available. Can be * (as‐
704 terisk) to download all audio sources.
705
706 Examples:
707
708 --hls-audio-select "English,German"
709 --hls-audio-select "en,de"
710 --hls-audio-select "*"
711
712 NOTE:
713 This is only useful in special circumstances where the regu‐
714 lar locale option fails, such as when multiple sources of the
715 same language exists.
716
717 --hls-start-offset [[XX:]XX:]XX[.XX] | [XXh][XXm][XX[.XX]s]
718 Amount of time to skip from the beginning of the stream. For
719 live streams, this is a negative offset from the end of the
720 stream (rewind).
721
722 Default is: 0.
723
724 --hls-duration [[XX:]XX:]XX[.XX] | [XXh][XXm][XX[.XX]s]
725 Limit the playback duration, useful for watching segments of a
726 stream. The actual duration may be slightly longer, as it is
727 rounded to the nearest HLS segment.
728
729 Default is: unlimited.
730
731 --hls-live-restart
732 Skip to the beginning of a live stream, or as far back as possi‐
733 ble.
734
735 DASH options
736 --dash-manifest-reload-attempts ATTEMPTS
737 Max number of attempts when reloading the DASH manifest before
738 giving up.
739
740 Default is: 3.
741
742 FFmpeg options
743 --ffmpeg-ffmpeg FILENAME
744 FFMPEG is used to access or mux separate video and audio
745 streams. You can specify the location of the ffmpeg executable
746 if it is not in your PATH.
747
748 Example: --ffmpeg-ffmpeg "/usr/local/bin/ffmpeg"
749
750 --ffmpeg-no-validation
751 Disable FFmpeg validation and version logging.
752
753 --ffmpeg-verbose
754 Write the console output from ffmpeg to the console.
755
756 --ffmpeg-verbose-path PATH
757 Path to write the output from the ffmpeg console.
758
759 --ffmpeg-fout OUTFORMAT
760 When muxing streams, set the output format to OUTFORMAT.
761
762 Default is: "matroska".
763
764 Example: --ffmpeg-fout "mpegts"
765
766 --ffmpeg-video-transcode CODEC
767 When muxing streams, transcode the video to CODEC.
768
769 Default is: "copy".
770
771 Example: --ffmpeg-video-transcode "h264"
772
773 --ffmpeg-audio-transcode CODEC
774 When muxing streams, transcode the audio to CODEC.
775
776 Default is: "copy".
777
778 Example: --ffmpeg-audio-transcode "aac"
779
780 --ffmpeg-copyts
781 Forces the -copyts ffmpeg option and does not remove the initial
782 start time offset value.
783
784 --ffmpeg-start-at-zero
785 Enable the -start_at_zero ffmpeg option when using
786 --ffmpeg-copyts.
787
788 HTTP options
789 --http-proxy HTTP_PROXY
790 A HTTP proxy to use for all HTTP and HTTPS requests, including
791 WebSocket connections.
792
793 Example: --http-proxy "http://hostname:port/"
794
795 --http-cookie KEY=VALUE
796 A cookie to add to each HTTP request.
797
798 Can be repeated to add multiple cookies.
799
800 --http-header KEY=VALUE
801 A header to add to each HTTP request.
802
803 Can be repeated to add multiple headers.
804
805 --http-query-param KEY=VALUE
806 A query parameter to add to each HTTP request.
807
808 Can be repeated to add multiple query parameters.
809
810 --http-ignore-env
811 Ignore HTTP settings set in the environment such as environment
812 variables (HTTP_PROXY, etc) or ~/.netrc authentication.
813
814 --http-no-ssl-verify
815 Don't attempt to verify SSL certificates.
816
817 Usually a bad idea, only use this if you know what you're doing.
818
819 --http-disable-dh
820 Disable Diffie Hellman key exchange
821
822 Usually a bad idea, only use this if you know what you're doing.
823
824 --http-ssl-cert FILENAME
825 SSL certificate to use.
826
827 Expects a .pem file.
828
829 --http-ssl-cert-crt-key CRT_FILENAME KEY_FILENAME
830 SSL certificate to use.
831
832 Expects a .crt and a .key file.
833
834 --http-timeout TIMEOUT
835 General timeout used by all HTTP requests except the ones cov‐
836 ered by other options.
837
838 Default is: 20.0.
839
840 Web browser options
841 --webbrowser {yes,true,1,on,no,false,0,off}
842 Enable or disable support for Streamlink's webbrowser API.
843
844 Streamlink's webbrowser API allows plugins which implement it to
845 launch a web browser and extract data from websites which they
846 otherwise couldn't do via the regular HTTP session in Python due
847 to specific JavaScript restrictions.
848
849 The web browser is run isolated and in a clean environment with‐
850 out access to regular user data.
851
852 Streamlink currently only supports Chromium-based web browsers
853 using the Chrome Devtools Protocol (CDP). This includes
854 Chromium itself, Google Chrome, Microsoft Edge, Brave, Vivaldi,
855 and others, but full support for third party Chromium forks is
856 not guaranteed. If you encounter any issues, please try Chromium
857 or Google Chrome instead.
858
859 Default is: true.
860
861 --webbrowser-executable PATH
862 Path to the web browser's executable.
863
864 By default, it is looked up automatically according to the rules
865 of the used webbrowser API implementation. This usually in‐
866 volves a list of known executable names and fallback paths on
867 all supported operating systems.
868
869 --webbrowser-timeout TIME
870 The maximum amount of time which the web browser can take to
871 launch and execute.
872
873 --webbrowser-cdp-host HOST
874 Host for the web browser's inter-process communication interface
875 (CDP specific).
876
877 Default is: 127.0.0.1.
878
879 --webbrowser-cdp-port PORT
880 Port for the web browser's inter-process communication interface
881 (CDP specific).
882
883 Tries to find a free port by default.
884
885 --webbrowser-cdp-timeout TIME
886 The maximum amount of time for waiting on a single CDP command
887 response.
888
889 --webbrowser-headless {yes,true,1,on,no,false,0,off}
890 Whether to launch the web browser in headless mode or not. When
891 enabled, it stays completely hidden and doesn't require a desk‐
892 top environment to run.
893
894 Default is: true.
895
896 Plugin options
897 Afreeca
898 --afreeca-username USERNAME
899 The username used to register with afreecatv.com.
900
901 --afreeca-password PASSWORD
902 A afreecatv.com account password to use with --afreeca-username.
903
904 --afreeca-purge-credentials
905 Purge cached AfreecaTV credentials to initiate a new session and
906 reauthenticate.
907
908 Bbciplayer
909 --bbciplayer-username USERNAME
910 The username used to register with bbc.co.uk.
911
912 --bbciplayer-password PASSWORD
913 A bbc.co.uk account password to use with --bbciplayer-username.
914
915 --bbciplayer-hd
916 Prefer HD streams over local SD streams, some live programmes
917 may not be broadcast in HD.
918
919 Clubbingtv
920 --clubbingtv-username
921 The username used to register with Clubbing TV.
922
923 --clubbingtv-password
924 A Clubbing TV account password to use with
925 --clubbingtv-username.
926
927 Crunchyroll
928 --crunchyroll-username USERNAME
929 A Crunchyroll username to allow access to restricted streams.
930
931 --crunchyroll-password [PASSWORD]
932 A Crunchyroll password for use with --crunchyroll-username.
933
934 If left blank you will be prompted.
935
936 --crunchyroll-purge-credentials
937 Purge cached Crunchyroll credentials to initiate a new session
938 and reauthenticate.
939
940 --crunchyroll-session-id SESSION_ID
941 Set a specific session ID for crunchyroll, can be used to bypass
942 region restrictions. If using an authenticated session ID, it is
943 recommended that the authentication parameters be omitted as the
944 session ID is account specific.
945
946 NOTE:
947 The session ID will be overwritten if authentication is used
948 and the session ID does not match the account.
949
950 Nicolive
951 --niconico-email EMAIL
952 The email or phone number associated with your Niconico account
953
954 --niconico-password PASSWORD
955 The password of your Niconico account
956
957 --niconico-user-session VALUE
958 Value of the user-session token.
959
960 Can be used as an alternative to providing a password.
961
962 --niconico-purge-credentials
963 Purge cached Niconico credentials to initiate a new session and
964 reauthenticate.
965
966 --niconico-timeshift-offset [[XX:]XX:]XX | [XXh][XXm][XXs]
967 Amount of time to skip from the beginning of a stream.
968
969 Default is: 0.
970
971 Openrectv
972 --openrectv-email EMAIL
973 The email associated with your openrectv account, required to
974 access any openrectv stream.
975
976 --openrectv-password PASSWORD
977 An openrectv account password to use with --openrectv-email.
978
979 Pixiv
980 --pixiv-sessionid SESSIONID
981 The pixiv.net sessionid that's used in pixiv's PHPSESSID cookie.
982
983 --pixiv-devicetoken DEVICETOKEN
984 The pixiv.net device token that's used in pixiv's device_token
985 cookie.
986
987 --pixiv-purge-credentials
988 Purge cached Pixiv credentials to initiate a new session and
989 reauthenticate.
990
991 --pixiv-performer USER
992 Select a co-host stream instead of the owner stream.
993
994 Raiplay
995 --raiplay-email EMAIL
996 The email used to register with raiplay.it.
997
998 --raiplay-password PASSWORD
999 A raiplay.it account password to use with --raiplay-email.
1000
1001 --raiplay-purge-credentials
1002 Purge cached RaiPlay credentials to initiate a new session and
1003 reauthenticate.
1004
1005 Sbscokr
1006 Steam
1007 --steam-email EMAIL
1008 A Steam account email address to access friends/private streams
1009
1010 --steam-password PASSWORD
1011 A Steam account password to use with --steam-email.
1012
1013 Streann
1014 --streann-url URL
1015 Source URL where the iframe is located, only required for direct
1016 URLs of ott.streann.com
1017
1018 Twitcasting
1019 --twitcasting-password PASSWORD
1020 Password for private Twitcasting streams.
1021
1022 Twitch
1023 --twitch-disable-ads
1024 Skip embedded advertisement segments at the beginning or during
1025 a stream. Will cause these segments to be missing from the out‐
1026 put.
1027
1028 --twitch-disable-reruns
1029 Do not open the stream if the target channel is currently broad‐
1030 casting a rerun.
1031
1032 --twitch-low-latency
1033 Enables low latency streaming by prefetching HLS segments. Sets
1034 --hls-segment-stream-data to true and --hls-live-edge to 2, if
1035 it is higher. Reducing --hls-live-edge to 1 will result in the
1036 lowest latency possible, but will most likely cause buffering.
1037
1038 In order to achieve true low latency streaming during playback,
1039 the player's caching/buffering settings will need to be adjusted
1040 and reduced to a value as low as possible, but still high enough
1041 to not cause any buffering. This depends on the stream's bi‐
1042 trate and the quality of the connection to Twitch's servers.
1043 Please refer to the player's own documentation for the required
1044 configuration. Player parameters can be set via --player-args.
1045
1046 NOTE:
1047 Low latency streams have to be enabled by the broadcasters on
1048 Twitch themselves. Regular streams can cause buffering is‐
1049 sues with this option enabled due to the reduced
1050 --hls-live-edge value.
1051
1052 --twitch-api-header KEY=VALUE
1053 A header to add to each Twitch API HTTP request.
1054
1055 Can be repeated to add multiple headers.
1056
1057 Useful for adding authentication data that can prevent ads. See
1058 the plugin-specific documentation for more information.
1059
1060 --twitch-access-token-param KEY=VALUE
1061 A parameter to add to the API request for acquiring the stream‐
1062 ing access token.
1063
1064 Can be repeated to add multiple parameters.
1065
1066 --twitch-purge-client-integrity
1067 Purge cached Twitch client-integrity token and acquire a new
1068 one.
1069
1070 Ustreamtv
1071 --ustream-password PASSWORD
1072 A password to access password protected UStream.tv channels.
1073
1074 Ustvnow
1075 --ustvnow-username USERNAME
1076 Your USTV Now account username
1077
1078 --ustvnow-password PASSWORD
1079 Your USTV Now account password
1080
1081 Wwenetwork
1082 --wwenetwork-email EMAIL
1083 The email associated with your WWE Network account, required to
1084 access any WWE Network stream.
1085
1086 --wwenetwork-password PASSWORD
1087 A WWE Network account password to use with --wwenetwork-email.
1088
1089 Yupptv
1090 --yupptv-boxid BOXID
1091 The yupptv.com boxid that's used in the BoxId cookie.
1092
1093 --yupptv-yuppflixtoken YUPPFLIXTOKEN
1094 The yupptv.com yuppflixtoken that's used in the YuppflixToken
1095 cookie.
1096
1097 --yupptv-purge-credentials
1098 Purge cached YuppTV credentials to initiate a new session and
1099 reauthenticate.
1100
1101 Zattoo
1102 --zattoo-email EMAIL
1103 The email associated with your zattoo account, required to ac‐
1104 cess any zattoo stream.
1105
1106 --zattoo-password PASSWORD
1107 A zattoo account password to use with --zattoo-email.
1108
1109 --zattoo-purge-credentials
1110 Purge cached zattoo credentials to initiate a new session and
1111 reauthenticate.
1112
1113 --zattoo-stream-types TYPES
1114 A comma-delimited list of stream types which should be used.
1115
1116 The following types are allowed: dash,hls7
1117
1118 Default is: "dash".
1119
1121 Please open a new issue on Streamlink's issue tracker on GitHub and use
1122 the appropriate issue forms:
1123
1124 https://github.com/streamlink/streamlink/issues
1125
1127 For more detailed information about config files, plugin sideloading,
1128 streaming protocols, proxy support, metadata, or plugin specific stuff,
1129 please see Streamlink's online CLI documentation here:
1130
1131 https://streamlink.github.io/cli.html
1132
1133 The list of available plugins and their descriptions can be found here:
1134
1135 https://streamlink.github.io/plugins.html
1136
1138 Streamlink Contributors
1139
1141 2023, Streamlink
1142
1143
1144
1145
11466.4.2 Nov 29, 2023 STREAMLINK(1)