Capter un flux web avec streamlink

L'outil streamlink permet de capter des flux http(s) de plateformes vidéos comme YouTube. Voyons un usage simple ainsi que comment installer l'outil suivant l'OS.

Exemples d'utilisation

Enregistrer localement dans un fichier

1streamlink --quiet -o - "https://www.youtube.com/watch?v=l8PMl7tUDIE" best > flux.ts

Piper dans un autre processus

1streamlink --quiet -o - "https://www.youtube.com/watch?v=l8PMl7tUDIE" best | ./captncut-ts.php

Diffuser en multicast

1streamlink --quiet -o - "https://www.youtube.com/watch?v=l8PMl7tUDIE" best | ffmpeg -re -f mpegts -i - -c copy -map 0 -f mpegts udp://239.0.0.1:1234

Installation

CentOS7 : non

  • pas de paquets dans la distrib (dnf search streamlink)
  • s'installe avec pip3 install streamlink mais ne s'exécute pas à cause d'un openssl trop vieux. Recompiler à la main openssl ? :(

AlmaLinux 8 : non

  • pas de paquets dans la distrib
  • openssl 1.1.1 ok
  • pip3 install streamlink (en root) marche mais crash au runtime

AlmaLinux 9 : ?

à tester

Debian 12 : oui

  • paquet dans la distrib (apt install streamlink)
1streamlink --version
2streamlink 5.2.1

MacOS : oui

  • paquet dispo dans homebrew (brew install streamlink)
1streamlink --version
2streamlink 6.4.2

Multicast restreint à la boucle locale sous MacOS

1sudo route add 239.0.0.0/24 127.0.0.1 # activer
2netstat -nr -f inet | grep 239.0.0 # vérifier
3sudo route delete 239.0.0.0/24 127.0.0.1 # désactiver

Monitoring trafic avec bwm-ng (à faire pendant une diffusion multicast, cas qu'il faut qu'un client soit abonné au groupe multicast. Ex: mpv udp://239.0.0.1:1234)

1brew install bwm-ng
 1  bwm-ng v0.6.3 (probing every 0.500s), press 'h' for help
 2  input: getifaddrs type: rate
 3  /         iface                   Rx                   Tx                Total
 4  ==============================================================================
 5              lo0:         628.23 KB/s          628.23 KB/s         1256.46 KB/s <--- trafic multicast
 6              en3:           0.00 KB/s            0.00 KB/s            0.00 KB/s
 7              ap1:           0.00 KB/s            0.00 KB/s            0.00 KB/s
 8              en0:           0.00 KB/s            0.00 KB/s            0.00 KB/s
 9              en1:           0.00 KB/s            0.00 KB/s            0.00 KB/s
10              en2:           0.00 KB/s            0.00 KB/s            0.00 KB/s
11              en5:           0.00 KB/s           11.93 KB/s           11.93 KB/s
12          bridge0:           0.00 KB/s            0.00 KB/s            0.00 KB/s
13            utun0:           0.00 KB/s            0.00 KB/s            0.00 KB/s
14            utun1:           0.00 KB/s            0.00 KB/s            0.00 KB/s
15            utun2:           0.00 KB/s            0.00 KB/s            0.00 KB/s
16            utun3:           0.00 KB/s            0.00 KB/s            0.00 KB/s
17             en14:           0.00 KB/s            0.00 KB/s            0.00 KB/s
18             en16:           0.00 KB/s            0.00 KB/s            0.00 KB/s
19  ------------------------------------------------------------------------------
20            total:         628.23 KB/s          640.16 KB/s         1268.39 KB/s

Ressources

comments powered by Disqus