Skip to content

Releases: 2bc4/twitch-hls-client

1.6.2

18 Feb 23:25
1.6.2
d9aa794

Choose a tag to compare

  • feat: add [channel] substitution for player args (#46)
  • args: print the default user agent when passing --help
  • output: continue tcp accept loop if header fails to send
  • ci: Add x86-64-v4 & x86-64-v2 target-cpu build targets (#47)

1.6.1

11 Nov 02:52
1.6.1
cb2e5c8

Choose a tag to compare

  • hls: fix twitch playlist acquisition due to twitch updates

1.6.0

28 Oct 23:44
1.6.0
47a9157

Choose a tag to compare

  • http: add SOCKS5 support with --socks5 and --socks5-restrict (auth unsupported)
    Also useful for proxying playlist requests to a server in a country that doesn't serve ads.
    For example --socks5 proxy-server:1080 --socks5-restrict gql.twitch.tv,usher.ttvnw.net would proxy only the playlist request and keep the video stream unproxied and fast.

  • hls: don't retry on playlist proxy and cache requests

  • hls: use head request when checking if cached playlist exists

  • constants: bump

1.5.0

28 Aug 18:47
1.5.0
8ed5603

Choose a tag to compare

  • hls: support multivariant url (master playlist) passthrough
    --passthrough now has 3 modes: variant, multivariant and disabled.

  • http: retry on any unsuccessful http status code except 404

  • build: make optional build features debug-logging and colors required

  • constants: bump

1.4.3

13 Jun 21:37
1.4.3
96d2f07

Choose a tag to compare

  • hls: add basic kick platform support (not the focus of the project but useful for ad-free multistreams)
    usage: twitch-hls-client kick:channel best

  • tcp: don't spawn thread if only one client

  • http: decode into 16kb buffer to reduce writes to 1 syscall

  • constants: bump

1.4.2

04 Jun 19:57
1.4.2
d679925

Choose a tag to compare

  • fix: select best playlist based on resolution (#43)

1.4.1

14 May 23:18
1.4.1
83c91d5

Choose a tag to compare

  • tcp: accept multiple sockets per segment instead of only one
  • hls: don't close segment server socket when waiting for outputs
  • http: don't parse host in url twice
  • playlist: don't info log when resetting playlist
  • constants: bump user agent to latest Firefox nightly and bump player_version
  • ci: remove readme from release zips
  • build: update nix build stuff
  • usage: add -t to top usage line (forgot)
  • And more code cleanup

1.4.0

16 Apr 09:35
1.4.0
c924aac

Choose a tag to compare

  • Add -t to output stream over TCP. Supports multiple clients. If there are no clients connected and it is the only output, then segment fetching will be paused until a client connects.

Example:

$ twitch-hls-client -t 127.0.0.1:8080 twitchchannel best 
Fetching playlist for channel twitchchannel
Listening on: 127.0.0.1:8080
Waiting for outputs...
Client accepted: 127.0.0.1:46574

$ mpv tcp://127.0.0.1:8080
  • Add --tcp-client-timeout to set write timeout on TCP client sockets
  • Add --use-cache-only to exit if playlist cache doesn't contain playlist URL
  • Add --write-cache-only to exit after caching playlist URL
  • Hide client id and auth token in debug logs
  • Avoid a panic by ensuring a socket address was resolved
  • Exit gracefully if channel doesn't exist
  • Fix handling stream end

1.3.14

11 Apr 16:58
1.3.14
08ece64

Choose a tag to compare

  • Bump rustls-native-certs to 0.8.*
  • Bump user agent and player_version

1.3.13

04 Jan 21:18
1.3.13
97e11de

Choose a tag to compare

  • Fix hevc/av1 streams
  • Strip protocol when parsing channel (#41)
  • Cleanup/slightly optimize
  • Bump user agent and player_version