Skip to content

Releases: energee/node-appletv-remote

v0.4.0

Choose a tag to compare

@energee energee released this 14 Oct 06:06

New Features

  • More controls (#4):
    • seek, shuffle and repeat
    • volume
    • listing and launching apps
    • user accounts
    • power state
    • extra remote keys
    • Metadata.app

Bug Fixes

  • Companion protocol: works with the real wire format and delivers events (#1); request envelope corrected (#3)
  • PairSetup export and MRP schema: PairSetup is now exported, and the MRP schema ships inside the package (#3)
  • Decoding and connection fixes (#6):
    • varint values of 2^31 and above
    • truncated TLV data now throws
    • oversized Companion frames now throw
    • pair-verify no longer leaks its HTTP connection on failure

Internal

  • Removed dead MRP crypto code and duplicate receive and queue-parsing logic (#5)
  • Every module, class and function is now documented (#6)

v0.3.2

Choose a tag to compare

@energee energee released this 01 Feb 22:23

Bug Fixes

  • Fix @noble/ciphers 1.x API: Pass AAD as constructor argument instead of to encrypt/decrypt methods, matching the 1.x API.

v0.3.1

Choose a tag to compare

@energee energee released this 01 Feb 22:15

Bug Fixes

  • Fix companion pair-verify signature failure: Add missing _auTy field to PV_Start OPACK payload, which tells the Apple TV which authentication type to use during pair-verify. Without it, the server signs with a different long-term key than the one returned during pair-setup, causing Ed25519 verification to fail.
  • Fix companion session key derivation: Use correct HKDF parameters (empty salt, ClientEncrypt-main, ServerEncrypt-main) instead of incorrect MediaRemote-Salt strings.

v0.3.0

Choose a tag to compare

@energee energee released this 01 Feb 21:30

What's New

  • Companion Link protocol — OPACK binary serialization, companion frame encoding, and full SRP M1-M6 pair-setup handshake over PS_Start/PS_Next frames
  • Companion connection — encrypted session, event streaming, request/response messaging
  • Text input support — setText, insertText, clearText, deleteText via MRP
  • CLI commands — atv companion-pair and atv companion-test
  • Code simplification — streamlined frame resolvers and extracted reusable CLI helpers
  • CI fix — use npm install instead of npm ci (no lockfile committed)

v0.2.0

Choose a tag to compare

@energee energee released this 01 Feb 18:45

What's New

  • Media controls — play, pause, next, previous, skip_forward, skip_backward, volume_up, volume_down
  • Now-playing state — atv state shows current track title, artist, app, and playback progress
  • Playback queue — atv queue lists queued tracks
  • Artwork support — atv artwork saves current track artwork to file
  • Interactive remote — atv remote for continuous command input
  • Raw message streaming — atv messages streams all MRP messages in real time

Improvements

  • Complete AirPlay 2 connection with DataStream framing and MRP encryption
  • HAP authentication (SRP pair-setup, X25519 pair-verify, Ed25519 signatures)
  • ChaCha20-Poly1305 encrypted sessions with HKDF-SHA512 derived keys
  • Added MIT license
  • Improved README with full API documentation and install instructions