Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tvhp

A Tvheadend client for jailbroken PlayStation 5 consoles where the majority of the source code was generated by Claude.ai (including this readme).

It speaks HTSP directly — no transcoding proxy, no browser — and decodes the stream with FFmpeg, so live TV and recordings play from the same connection that carries the channel list and the guide.

tvhp

Features

  • Live TV — channel list with now/next and a progress bar, full programme guide per channel, full-screen playback with channel zapping.
  • Scheduling — record any programme from the guide with one button
  • Recordings — browse everything the DVR holds, play it back, and cancel or delete entries.
  • Playback of recordings over HTSP, using the server's file API.
  • Multiple servers — save as many as you like and switch between them without restarting.
  • Designed for a 1920x1080 screen at couch distance: large type, high contrast, and a single unmistakable focus colour.

Controls

tvhp can be driven from a DualSense pad, from an HDMI-CEC remote control, or from a USB keyboard. The PS5 port of SDL2 reports the remote as keyboard keys, so all three devices meet in one table (src/keymap.h) and every command is reachable from any of them.

Command Pad Remote Keyboard
Navigate D-pad D-pad Arrows
Page up / down L1 / R1 P+ / P- Page Up / Page Down
Select, record, play/pause Cross Enter Enter
Back, cancel Circle Back Escape, Backspace
Guide ↔ recordings, info bar Square Display Tab
Delete recording or server Triangle Red Delete
Add a server Options Menu Insert
Jump to the guide Guide F9
Play / pause Cross Play, Pause Space
Stop Circle Stop
Seek ±5 min Up / Down Rewind, Fast forward
Seek ±30 s Left / Right Left / Right

The remote's table is fixed by SDL, so it decides the key identifiers and the pad is mapped onto them rather than the other way round. That is why Circle is Escape rather than Backspace, and why Square is Tab rather than Space: the remote's back button sends Escape, and its play/pause button sends Space.

Requirements

  • A jailbroken PS5 running ps5-payload-dev/websrv or an equivalent homebrew launcher.
  • A Tvheadend server reachable on your network, with an HTSP user. The default HTSP port is 9982.
  • HTSP protocol version 8 or later for recording playback. tvhp announces version 35; anything Tvheadend 4.2 or newer is comfortably sufficient.

Install

Download TVHP.zip from the releases page and unpack it into its own folder under /data/homebrew on the console, so you end up with:

/data/homebrew/TVHP/
├── tvhp              # the payload
├── homebrew.js       # tells the launcher what to run
├── assets/           # RML documents, stylesheets, icons
├── fonts/
└── sce_sys/
    └── icon0.png

TVHP then appears in the Homebrew Launcher. Copying the folder over FTP or onto USB both work, depending on how your launcher is set up.

Known limitations

  • Channel icons are fetched from the server but not displayed yet.
  • Only programme-based recording is exposed. The client can also schedule a manual time range (HtspClient::RecordTimespan), but nothing in the UI calls it.
  • No series recording: autorec and timerec rules are neither listed nor editable.
  • No transcoding profile selection; the server's default is used.
  • Rebuilding the resampler at a mid-stream audio format change discards a few milliseconds, so there can be a very brief gap at, for example, an ad break.

About

A TVHeadend player for jailbroken PS5s

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages