Skip to content

Releases: devsolux/iptv

IPTV 1.1.0

Choose a tag to compare

@devsolux devsolux released this 16 Oct 15:42

Streaming

  • Live DASH plays again. The relay now keeps usable UTCTiming clock sources and forwards the manifest Date header, and the player no longer treats dash.js clock, subtitle or buffer-pruning errors as fatal. Before, every live DASH stream stopped with "cannot decode".
  • Clearer failures. Relay errors now reach the player with their real status, so policy blocks (403), oversized playlists (413) and unsupported formats (415) are named instead of showing as a lost connection.
  • Long and on-demand playlists keep working. Segments are no longer dropped five minutes after their playlist loaded, and long DVR windows no longer hit the old 8,192-address limit.
  • Faster, single-connection start. The relay hands its probe connection to the player, so providers that allow one connection and one-time stream addresses work.
  • Better stream detection. MPEG-TS is recognised even when a live stream starts mid-packet, and a .m3u8 address that actually serves TS plays as TS.
  • More HLS streams play. A multivariant playlist with one off-host or plain-HTTP variant keeps its other variants instead of failing. Identity SAMPLE-AES keys are relayed. $ in an HLS address no longer breaks playback.
  • Automatic recovery. Desktop and Android reconnect a stream that was playing and then dropped, up to three times in two minutes. Android also rejoins the live edge after falling behind the live window.
  • Android buffers 1.5 s before starting playback, which cuts rebuffering on Wi-Fi.

Build and CI

  • Every push now builds a debug Android APK (aarch64), so the Media3 player plugin is compiled before release time.
  • GitHub Actions are pinned to their latest releases (actions/setup-java v6.1.0). The verify workflow can be run manually and caches npm downloads.

Installing

Verify a download with its .sigstore.json bundle first (see the README).

  • macOS (universal): the app is ad-hoc signed and not notarized. After dragging IPTV to Applications, run this once before the first launch and after every update:

    xattr -cr /Applications/IPTV.app
  • Windows: the installers are not Authenticode-signed; SmartScreen asks for confirmation.

  • Android / Fire TV: packages named unsigned cannot be installed without the repository's signing secrets.

This is verified source, not a certified release. See docs/VERIFICATION.md for what was and was not tested.

v1.0.0: Fix the release workflow's macOS lipo check and Android platform install

Choose a tag to compare

@devsolux devsolux released this 13 Oct 18:12
Release run 38437449018 passed the Linux and Windows jobs and failed
twice. The macOS collect step passed the binary to lipo after the
-verify_arch architecture list, and Xcode 27's lipo rejects the
documented order as well; the step now reads lipo -archs and requires
exactly the arm64 and x86_64 slices. The Android jobs asked sdkmanager
for platforms;android-37 because the Tauri CLI 2.12.2 host template
compiles against API 37, which Google publishes only as minor-versioned
platforms (android-37.0, 37.1, 37.2); the host step now resolves every
declared compileSdk to android-N or android-N.0 from the stable listing,
and the SDK step no longer reinstalls cmdline-tools;latest into a second
directory.

Reproducing the Android job locally reached a third defect: the player
plugin imports androidx.activity classes that tauri-android does not
export, so compileReleaseKotlin failed. The plugin now declares
androidx.activity:activity 1.13.0, and the aarch64 release APK builds
against the android-37.0 platform with only the arm64-v8a library. The
plugin's Gradle output directories are ignored so Biome and git skip
them. BUILDING.md and VERIFICATION.md record the requirements and what
ran. Version stays 1.0.0.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>