Skip to main content

open-in-mpv

Python versions PyPI - Version GitHub tag (with filter) License GitHub commits since latest release (by SemVer including pre-releases) CodeQL QA Tests Coverage Status Dependabot Documentation Status mypy uv pytest Ruff Downloads Stargazers pre-commit Prettier

@Tatsh Buy Me A Coffee Libera.Chat Mastodon Follow Patreon

This browser extension displays a context menu item Open in mpv for links. When clicked it will pass the URL of the link to mpv (which must be PATH).

If you have yt-dlp installed and in PATH, then mpv will try to use it to resolve URLs it cannot handle. This means you can right-click on any YouTube video page or link, choose Open in mpv and view the video with mpv.

Installation

First, install the extension. Quit your browser.

There are many ways to perform the next step. Below is the most basic, assuming you have Pip installed.

Gentoo users can simply install media-video/open-in-mpv from my overlay.

pip install --user open-in-mpv
open-in-mpv-install --user --force

The above commands will install the native host JSON file to supported Chromium-based browsers whose paths are known for your OS. --force is used on first install to create the necessary paths if they do not exist.

See open-in-mpv-install --help for more options. Linux users can pass the --system option to install the native host part of the extension system-wide.

Uninstallation

Uninstall the extension from your browser. Then follow the steps below depending on how you installed the native messaging host component:

General uninstallation

open-in-mpv-uninstall
pip uninstall open-in-mpv

macOS pkg uninstallation

If you installed open-in-mpv using the macOS pkg installer, follow these steps to completely uninstall it:

  1. Run the uninstall command:

    sudo /usr/local/bin/open-in-mpv-uninstall
    
  2. Remove the package files:

    pkgutil --only-files --files sh.tat.open-in-mpv | tr '\n' '\0' | xargs -n 1 -0 sudo rm -f
    pkgutil --only-dirs --files sh.tat.open-in-mpv | tail -r | tr '\n' '\0' | xargs -n 1 -0 sudo rmdir
    
  3. Forget the package:

    sudo pkgutil --forget sh.tat.open-in-mpv
    

Windows

Uninstall open-in-mpv using Programs & Features.

Known issues

Linux: mpv is launched with --gpu-api=opengl because with Vulkan it starts but fails to open a window.

At this time, Windows is not supported by the open-in-mpv Python script. It may work, but it is not supported.

Metadata

Release files for open-in-mpv 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for open-in-mpv 0.2.3
File Size Uploaded Provenance Actions
open_in_mpv-0.2.3.tar.gz 15.5 kB With provenance Details for open_in_mpv-0.2.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for open-in-mpv 0.2.3
File Interpreter ABI Platform Actions
open_in_mpv-0.2.3-py3-none-any.whl Python 3 none any Details for open_in_mpv-0.2.3-py3-none-any.whl

Total release size: 28.3 kB

Release files / open_in_mpv-0.2.3.tar.gz

Download URL open_in_mpv-0.2.3.tar.gz
Size 15.5 kB
Tags Source
SHA-256 checksum
How to use checksums
42dba70abb5b711d137205185db4ef08250d2cc84d5b95a681873a36d8fc8355
BLAKE2b-256 checksum
How to use checksums
6099803ea7c31e5f98be9dc0fee4f9a22fd37b52ef5581e52df13ff943181c07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.

Transparency log

Release files / open_in_mpv-0.2.3-py3-none-any.whl

Download URL open_in_mpv-0.2.3-py3-none-any.whl
Size 12.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
60c0da52c482eb496cd46dfa5120733f1d02aefc5c2664a7191be915f8e59303
BLAKE2b-256 checksum
How to use checksums
96fd005034117d8535da71099409eb08899812bbd0868fba96fcb512cd54ea50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.

Transparency log

Security for open-in-mpv 0.2.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for open_in_mpv-0.2.3.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page