first commit
This commit is contained in:
155
scripts/README.md
Normal file
155
scripts/README.md
Normal file
@@ -0,0 +1,155 @@
|
||||
[English][readme-en] | [简体中文][readme-zh-hans] | [繁体中文][readme-zh-hant]
|
||||
|
||||
[readme-en]: https://github.com/akiirui/mpv-handler/blob/main/README.md
|
||||
[readme-zh-hans]: https://github.com/akiirui/mpv-handler/blob/main/README.zh-Hans.md
|
||||
[readme-zh-hant]: https://github.com/akiirui/mpv-handler/blob/main/README.zh-Hant.md
|
||||
|
||||
# mpv handler
|
||||
|
||||
A protocol handler for **mpv**, written by Rust.
|
||||
|
||||
Use **mpv** and **yt-dlp** to play video and music from the websites.
|
||||
|
||||
Please use it with userscript:
|
||||
|
||||
[![play-with-mpv][badges-play-with-mpv]][greasyfork-play-with-mpv]
|
||||
|
||||
## Breaking changes
|
||||
|
||||
### [v0.4.0][v0.4.0]
|
||||
|
||||
To avoid conflicts with the `mpv://` protocol provided by mpv.
|
||||
|
||||
> mpv://...
|
||||
>
|
||||
> mpv protocol. This is used for starting mpv from URL handler. The protocol is stripped and the rest is passed to the player as a normal open argument. Only safe network protocols are allowed to be opened this way.
|
||||
|
||||
Scheme `mpv://` and `mpv-debug://` are deprecated, use `mpv-handler://` and `mpv-handler-debug://`.
|
||||
|
||||
**Require manual intervention**
|
||||
|
||||
#### Windows
|
||||
|
||||
Run `handler-uninstall.bat` to uninstall deprecated protocol, and run `handler-install.bat` to install new procotol.
|
||||
|
||||
#### Linux
|
||||
|
||||
If you installed manually, please repeat the manual installation process.
|
||||
|
||||
## Protocol
|
||||
|
||||

|
||||
|
||||
### Scheme
|
||||
|
||||
- `mpv-handler`: Run mpv-handler without console window
|
||||
- `mpv-handler-debug`: Run mpv-handler with console window to view outputs and errors
|
||||
|
||||
### Plugins
|
||||
|
||||
- `play`: Use mpv player to play video
|
||||
|
||||
### Encoded Data
|
||||
|
||||
Use [URL-safe base64][rfc-base64-url] to encode the URL or TITLE.
|
||||
|
||||
Replace `/` to `_`, `+` to `-` and remove padding `=`.
|
||||
|
||||
Example (JavaScript):
|
||||
|
||||
```javascript
|
||||
let data = btoa("https://www.youtube.com/watch?v=Ggkn2f5e-IU");
|
||||
let safe = data.replace(/\//g, "_").replace(/\+/g, "-").replace(/\=/g, "");
|
||||
```
|
||||
|
||||
### Parameters (Optional)
|
||||
|
||||
```
|
||||
cookies = [ www.domain.com.txt ]
|
||||
profile = [ default, low-latency, etc... ]
|
||||
quality = [ 2160p, 1440p, 1080p, 720p, 480p, 360p ]
|
||||
v_codec = [ av01, vp9, h265, h264 ]
|
||||
v_title = [ Encoded Title ]
|
||||
subfile = [ Encoded URL ]
|
||||
startat = [ Seconds (float) ]
|
||||
referrer = [ Encoded URL ]
|
||||
```
|
||||
|
||||
## Installation
|
||||
|
||||
### Linux
|
||||
|
||||
#### Arch Linux
|
||||
|
||||
[![mpv-handler][badges-aur]][download-aur]
|
||||
[![mpv-handler-git][badges-aur-git]][download-aur-git]
|
||||
|
||||
#### Manual installation
|
||||
|
||||
1. Download [latest Linux release][download-linux]
|
||||
2. Unzip the archive
|
||||
3. Copy `mpv-handler` to `$HOME/.local/bin`
|
||||
4. Copy `mpv-handler.desktop` to `$HOME/.local/share/applications/`
|
||||
5. Copy `mpv-handler-debug.desktop` to `$HOME/.local/share/applications/`
|
||||
6. Set executable permission for binary
|
||||
|
||||
- ```
|
||||
$ chmod +x $HOME/.local/bin/mpv-handler
|
||||
```
|
||||
|
||||
7. Register xdg-mime (thanks for the [linuxuprising][linuxuprising] reminder)
|
||||
|
||||
- ```
|
||||
$ xdg-mime default mpv-handler.desktop x-scheme-handler/mpv-handler
|
||||
$ xdg-mime default mpv-handler-debug.desktop x-scheme-handler/mpv-handler-debug
|
||||
```
|
||||
|
||||
8. Add `$HOME/.local/bin` to your environment variable `PATH`
|
||||
9. **Optional**: _Copy `config.toml` to `$HOME/.config/mpv-handler/config.toml` and configure_
|
||||
|
||||
### Windows
|
||||
|
||||
Windows users need to install manually.
|
||||
|
||||
#### Manual installation
|
||||
|
||||
1. Download [latest Windows release][download-windows]
|
||||
2. Unzip the archive to the directory you want
|
||||
3. Run `handler-install.bat` to register protocol handler
|
||||
4. Edit `config.toml` and set `mpv` and `ytdl` path
|
||||
|
||||
## Configuration
|
||||
|
||||
```toml
|
||||
mpv = "/usr/bin/mpv"
|
||||
# Optional, Type: String
|
||||
# The path of mpv executable binary
|
||||
# Default value:
|
||||
# - Linux: mpv
|
||||
# - Windows: mpv.com
|
||||
|
||||
ytdl = "/usr/bin/yt-dlp"
|
||||
# Optional, Type: String
|
||||
# The path of yt-dlp executable binary
|
||||
|
||||
proxy = "http://example.com:8080"
|
||||
# Optional, Type: String
|
||||
# HTTP(S) proxy server address
|
||||
|
||||
# For Windows users:
|
||||
# - The path can be "C:\\folder\\some.exe" or "C:/folder/some.exe"
|
||||
# - The path target is an executable binary file, not a directory
|
||||
```
|
||||
|
||||
[v0.4.0]: https://github.com/akiirui/mpv-handler/releases/tag/v0.4.0
|
||||
[rfc-base64-url]: https://datatracker.ietf.org/doc/html/rfc4648#section-5
|
||||
[badges-aur-git]: https://img.shields.io/aur/version/mpv-handler-git?style=for-the-badge&logo=archlinux&label=mpv-handler-git
|
||||
[badges-aur]: https://img.shields.io/aur/version/mpv-handler?style=for-the-badge&logo=archlinux&label=mpv-handler
|
||||
[badges-play-with-mpv]: https://img.shields.io/greasyfork/v/416271?style=for-the-badge&logo=greasyfork&label=play-with-mpv
|
||||
[download-aur-git]: https://aur.archlinux.org/packages/mpv-handler-git/
|
||||
[download-aur]: https://aur.archlinux.org/packages/mpv-handler/
|
||||
[download-linux]: https://github.com/akiirui/mpv-handler/releases/latest/download/mpv-handler-linux-amd64.zip
|
||||
[download-macos]: https://github.com/akiirui/mpv-handler/releases/latest/download/mpv-handler-macos-amd64.zip
|
||||
[download-windows]: https://github.com/akiirui/mpv-handler/releases/latest/download/mpv-handler-windows-amd64.zip
|
||||
[greasyfork-play-with-mpv]: https://greasyfork.org/scripts/416271-play-with-mpv
|
||||
[linuxuprising]: https://www.linuxuprising.com/2021/07/open-youtube-and-more-videos-from-your.html
|
||||
Reference in New Issue
Block a user