The format of the URLs that are supposed to be matched by the plugin's "stream" matcher have changed and incorrectly get matched by its "live" matcher, leading to a different API URL request that returns 404. The "stream" matcher needs a simple update and the "live" matcher must not match the format of the "stream" matcher.
$ HTTPS_PROXY=socks5://localhost:1920 ./script/test-plugin-urls.py tf1
:: https://lci.fr/direct
:: 234p, 360p, 576p_alt, 576p, 720p, worst, best
:: https://tf1.fr/tf1/direct
:: 234p, 360p, 576p_alt, 576p, 720p, worst, best
:: https://tf1info.fr/direct/
:: 234p, 360p, 576p_alt, 576p, 720p, worst, best
:: https://www.lci.fr/direct
:: 234p, 360p, 576p_alt, 576p, 720p, worst, best
:: https://www.tf1.fr/chante-69061019/direct
:: 234p, 270p, 360p, 576p, worst, best
:: https://www.tf1.fr/tf1-series-films/direct
:: 234p, 360p, 576p_alt, 576p, 720p, worst, best
:: https://www.tf1.fr/tf1/direct
:: 234p, 360p, 576p_alt, 576p, 720p, worst, best
:: https://www.tf1.fr/tfx/direct
:: 234p, 360p, 576p_alt, 576p, 720p, worst, best
:: https://www.tf1.fr/thriller-fiction-89242722/direct
:: 234p, 270p, 360p, 576p, worst, best
:: https://www.tf1info.fr/direct/
:: 234p, 360p, 576p_alt, 576p, 720p, worst, best
$ streamlink -l debug --http-proxy socks5h://localhost:1920 --tf1-email xoras36325@btcours.com --tf1-password Qwerty123! --tf1-purge-credentials https://www.tf1.fr/thriller-fiction-89242722/direct best
[cli][debug] OS: Linux-6.13.3-1-git-x86_64-with-glibc2.41
[cli][debug] Python: 3.13.2
[cli][debug] OpenSSL: OpenSSL 3.4.1 11 Feb 2025
[cli][debug] Streamlink: 7.1.3+1.g75ed38e2
[cli][debug] Dependencies:
[cli][debug] certifi: 2025.1.31
[cli][debug] isodate: 0.7.2
[cli][debug] lxml: 5.3.1
[cli][debug] pycountry: 24.6.1
[cli][debug] pycryptodome: 3.21.0
[cli][debug] PySocks: 1.7.1
[cli][debug] requests: 2.32.3
[cli][debug] trio: 0.29.0
[cli][debug] trio-websocket: 0.11.1
[cli][debug] urllib3: 2.3.0
[cli][debug] websocket-client: 1.8.0
[cli][debug] Arguments:
[cli][debug] url=https://www.tf1.fr/thriller-fiction-89242722/direct
[cli][debug] stream=['best']
[cli][debug] --loglevel=debug
[cli][debug] --player=/usr/bin/mpv
[cli][debug] --http-proxy=socks5h://localhost:1920
[cli][debug] --webbrowser-headless=True
[cli][debug] --tf1-email=xoras36325@btcours.com
[cli][debug] --tf1-password=********
[cli][debug] --tf1-purge-credentials=True
[cli][info] Found matching plugin tf1 for URL https://www.tf1.fr/thriller-fiction-89242722/direct
[plugins.tf1][debug] Found channel thriller-fiction-89242722 (L_FAST_v2l-thriller-fiction-89242722)
[plugins.tf1][info] Removing cached user-authentication token...
[plugins.tf1][info] Acquiring new user-authentication token...
[plugins.tf1][debug] uid='955496d149b342ac8c077abafcd79926' uid_signature='RKKFFt8F3d8+0ub2MXeDYrku2nk=' signature_timestamp='1739918358'
[utils.l10n][debug] Language code: en_US
[stream.ffmpegmux][debug] ffmpeg version n7.1 Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 14.2.1 (GCC) 20240910
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-frei0r --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libdvdnav --enable-libdvdread --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgsm --enable-libharfbuzz --enable-libiec61883 --enable-libjack --enable-libjxl --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libplacebo --enable-libpulse --enable-librav1e --enable-librsvg --enable-librubberband --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpl --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-vapoursynth --enable-version3 --enable-vulkan
libavutil 59. 39.100 / 59. 39.100
libavcodec 61. 19.100 / 61. 19.100
libavformat 61. 7.100 / 61. 7.100
libavdevice 61. 3.100 / 61. 3.100
libavfilter 10. 4.100 / 10. 4.100
libswscale 8. 3.100 / 8. 3.100
libswresample 5. 3.100 / 5. 3.100
libpostproc 58. 3.100 / 58. 3.100
[stream.hls][debug] Using external audio tracks for stream 576p (language=fr, name=French)
[stream.hls][debug] Using external audio tracks for stream 360p (language=fr, name=French)
[stream.hls][debug] Using external audio tracks for stream 270p (language=fr, name=French)
[stream.hls][debug] Using external audio tracks for stream 234p (language=fr, name=French)
[cli][info] Available streams: 234p (worst), 270p, 360p, 576p (best)
[cli][info] Opening stream: 576p (hls-multi)
[cli][info] Starting player: /usr/bin/mpv
[stream.ffmpegmux][debug] Opening hls substream
[stream.hls][debug] Reloading playlist
[stream.ffmpegmux][debug] Opening hls substream
[stream.hls][debug] Reloading playlist
[utils.named_pipe][info] Creating pipe streamlinkpipe-214112-1-6149
[utils.named_pipe][info] Creating pipe streamlinkpipe-214112-2-9315
[stream.ffmpegmux][debug] ffmpeg command: ['/usr/bin/ffmpeg', '-y', '-nostats', '-loglevel', 'info', '-i', '/tmp/streamlinkpipe-214112-1-6149', '-i', '/tmp/streamlinkpipe-214112-2-9315', '-c:v', 'copy', '-c:a', 'copy', '-map', '0:v?', '-map', '0:a?', '-map', '1:a', '-f', 'mpegts', 'pipe:1']
[stream.ffmpegmux][debug] Starting copy to pipe: /tmp/streamlinkpipe-214112-1-6149
[stream.ffmpegmux][debug] Starting copy to pipe: /tmp/streamlinkpipe-214112-2-9315
[cli][debug] Pre-buffering 8192 bytes
[stream.hls][debug] First Sequence: 13160638; Last Sequence: 13160652
[stream.hls][debug] Start offset: 0; Duration: None; Start Sequence: 13160650; End Sequence: None
[stream.hls][debug] Adding segment 13160650 to queue
[stream.hls][debug] Adding segment 13160651 to queue
[stream.hls][debug] Adding segment 13160652 to queue
[stream.hls][debug] First Sequence: 13160638; Last Sequence: 13160652
[stream.hls][debug] Start offset: 0; Duration: None; Start Sequence: 13160650; End Sequence: None
[stream.hls][debug] Adding segment 13160650 to queue
[stream.hls][debug] Adding segment 13160651 to queue
[stream.hls][debug] Adding segment 13160652 to queue
[stream.hls][debug] Writing segment 13160650 to output
[stream.hls][debug] Segment 13160650 complete
[stream.hls][debug] Writing segment 13160651 to output
[stream.hls][debug] Segment 13160651 complete
[stream.hls][debug] Writing segment 13160652 to output
[stream.hls][debug] Segment 13160652 complete
[stream.hls][debug] Writing segment 13160650 to output
[stream.hls][debug] Segment 13160650 complete
[cli.output][debug] Opening subprocess: ['/usr/bin/mpv', '--force-media-title=https://www.tf1.fr/thriller-fiction-89242722/direct', '-']
[stream.hls][debug] Writing segment 13160651 to output
[stream.hls][debug] Segment 13160651 complete
[cli][debug] Writing stream to output
[stream.hls][debug] Writing segment 13160652 to output
[stream.hls][debug] Segment 13160652 complete
[cli][info] Player closed
[stream.ffmpegmux][debug] Closing ffmpeg thread
[stream.segmented][debug] Closing worker thread
[stream.segmented][debug] Closing writer thread
[stream.segmented][debug] Closing worker thread
[stream.ffmpegmux][debug] Pipe copy complete: /tmp/streamlinkpipe-214112-1-6149
[stream.segmented][debug] Closing writer thread
[stream.segmented][debug] Closing writer thread
[stream.ffmpegmux][debug] Pipe copy complete: /tmp/streamlinkpipe-214112-2-9315
[stream.ffmpegmux][debug] Closed all the substreams
[cli][info] Stream ended
[cli][info] Closing currently open stream...