Skip to main content

A mpv syncing tool among clients and host for local media files

Project description

syncP

A tool to sync mpv player between host and clients. Great help from jaseg/python-mpv, please check it out.

How to use

Requirements

  • libmpv_32bit
  • python3

Steps

Install the wheel package manually by downloading it from releases or using pip install syncP.

[For Windows]

  • You will need to download the libmpv zip from Official Mpv Project, please use the lastest 32 bit version of libmpv.
  • After extracting to a folder, add the path of the folder in your system path variable.
  • To test if the path is set right, execute syncp test and check if the test video plays, you can press q to exit.
  • Assuming the test works, you can now either host a connection or join, I have explained the step below.

[For Linux]

  • Install mpv for you distribution and then try executing syncp test in your terminal.
  • Assuming the test works, you can now either host a connection or join, I have explained the step below.

Using the tool

[For Host]

  • Navigate to the directory with your media file you wanna sync and run syncp host. Follow the instructions on the terminal and this will open a port on your system for communication.
  • You will need to port forward using ngrok or config your router, I would suggest use ngrok tcp feature for this purpose.
  • Optionally you can specify port and limit for number of clients you want to add using the options --limit and --port. The default port is 3456 and limit is 5. Example: syncp host --port 1234 --limit 20

[For Client]

  • Nagigate to the directory with your media file you wanna sync and run syncp client. Follow the instructions where it will ask you for the host url and port.
  • Upon entering the details you can choose the media.

If everything went well you will be connected and the media will begin to play in your own respective mpv windows.

Keybindings

Not all events are synced, for now you can use space to sync pause and play and the host can use s to sync the location of the mediaplayback. I would suggest you better pause before syncing the location. No on screen controls are avaible for now. Default mpv keybindings work and you can find them here.

Disclaimer

This project is in no way perfect and could have multiple bugs I will try to fix along with adding some more features. For now it just works and my gf and I enjoy watching movies together. 😁

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

syncP-1.0.4.tar.gz (585.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

syncP-1.0.4-py3-none-any.whl (584.6 kB view details)

Uploaded Python 3

File details

Details for the file syncP-1.0.4.tar.gz.

File metadata

  • Download URL: syncP-1.0.4.tar.gz
  • Upload date:
  • Size: 585.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.2

File hashes

Hashes for syncP-1.0.4.tar.gz
Algorithm Hash digest
SHA256 101e49d915a4d5d15604d90b2420d8b16d95707e7459955744dd9d4ba12c5ca1
MD5 3125300b4022dff05f9763b89d7235de
BLAKE2b-256 d9951061a574805aadf80be6aaa9863859946f8ce57e066202e6d57d3e7ea5ef

See more details on using hashes here.

File details

Details for the file syncP-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: syncP-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 584.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.2

File hashes

Hashes for syncP-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6cc202a89703c418417b78662b854c92277637e591d3b5135dcf3e0472df2fc5
MD5 f4324eb3e42496844eecc657348e8071
BLAKE2b-256 a016b0de2ba40b5429520554ddd9b2d858ea118fba3f88777fb9456d7e0531d1

See more details on using hashes here.

Supported by

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