Skip to main content

Remote Play Library and API

Project description

pyremoteplay

PyPi Build Status Documentation Status

Python PlayStation Remote Play API

Documentation

About

This project provides an API to programmatically connect to and control Remote Play hosts (PS4 and PS5). The low-level networking internals is written using the Asyncio framework. In addition it includes an optional GUI, allowing to view the live stream and control the host through keyboard/mouse input. This library is based on the C/C++ project Chiaki.

Features

  • API to programatically control host and expose live audio/video stream
  • Registering client for Remote Play on the host
  • Interface for controlling the host, which emulates a DualShock controller
  • Ability to power off/on the host if standby is enabled
  • GUI which displays the live stream and supports keyboard/mouse input
  • Support for controllers

Requirements

  • Python 3.8+

  • OS: Linux, Windows 10

  • Note: Untested on MacOS

Network Requirements

This project will only work with local devices; devices on the same local network. You may be able to connect with devices on different subnets, but this is not guaranteed.

GUI Dependencies

The GUI requires dependencies that may be complex to install. Below is a list of such dependencies.

  • pyav (May require FFMPEG to be installed)
  • PySide6

uvloop is supported for the GUI and will be used if installed.

Installation

It is recommended to install in a virtual environment.

  python3 -m venv .
  source bin/activate

From pip

To install core package run:

pip install pyremoteplay

To install with optional GUI run:

pip install pyremoteplay[gui]

From Source

To Install from source, clone this repo and navigate to the top level directory.

  pip install -r requirements.txt
  python setup.py install

To Install GUI dependencies run:

  pip install -r requirements-gui.txt

Setup

There are some steps that must be completed to use this library from a user standpoint.

  • Registering a PSN Account
  • Linking PSN Account and client to the Remote Play Host

Configuration files are saved in the .pyremoteplay folder in the users home directory. Both the CLI and GUI utilize the same files.

CLI Setup

Registering and linking can be completed through the cli by following the prompts after using the below command:

pyremoteplay {host IP Address} --register

Replace {host IP Address} with the IP Address of the Remote Play host.

GUI Setup

Registering and linking can be performed in the options screen.

Usage

To run the terminal only CLI use the following command: pyremoteplay {host IP Address}

To run the GUI use the following command: pyremoteplay-gui

Notes

  • Video decoding is performed by the CPU by default. Hardware Decoding can be enabled in the options screen in the GUI.
  • You may have to install ffmpeg with hardware decoding enabled and then install pyav with the following command to allow for hardware decoding: pip install av --no-binary av

Baseline measurements

The CLI instance runs at 5-10% CPU usage with around 50Mb memory usage according to top on this author's machine: ODroid N2.

Known Issues/To Do

  • Text sending functions
  • Add support for HDR
  • Audio stutters

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyremoteplay-0.7.6.tar.gz (141.8 kB view details)

Uploaded Source

Built Distribution

pyremoteplay-0.7.6-py3-none-any.whl (154.4 kB view details)

Uploaded Python 3

File details

Details for the file pyremoteplay-0.7.6.tar.gz.

File metadata

  • Download URL: pyremoteplay-0.7.6.tar.gz
  • Upload date:
  • Size: 141.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for pyremoteplay-0.7.6.tar.gz
Algorithm Hash digest
SHA256 42e1558cf0d3f64f4f156d09d7e63b636c064f5d2a37c063e91dda1d76b77887
MD5 eb562a21546c658133deadc20992ba84
BLAKE2b-256 3868168fcbe8cd5a2b2e37c7eab17e8dc0ffcb8c6a92e930ff18436221b5161a

See more details on using hashes here.

File details

Details for the file pyremoteplay-0.7.6-py3-none-any.whl.

File metadata

  • Download URL: pyremoteplay-0.7.6-py3-none-any.whl
  • Upload date:
  • Size: 154.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for pyremoteplay-0.7.6-py3-none-any.whl
Algorithm Hash digest
SHA256 12f645120abd613952aac50a21b3536f25b69753f567a52ed8fc39050d1c3a9c
MD5 8c68071e0e4da04a85ff8efb405dc04d
BLAKE2b-256 95c61ea12b30ec895f73cd1e4c2bac3d0c4686189167d5cfbf809ed0bcc13671

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page