
Security News
Socket Security Analysis Is Now One Click Away on npm
npm now links to Socket's security analysis on every package page. Here's what you'll find when you click through.
tauri-plugin-mpv-api
Advanced tools
A Tauri plugin to embed the mpv player in your app via JSON IPC.
npm run tauri add mpv
For mpv to properly embed into your Tauri window, you need to configure transparency:
tauri.conf.json{
"app": {
"windows": [
{
"title": "Your App",
"width": 1280,
"height": 720,
"transparent": true // Add this line
}
]
}
}
/* In your main CSS file */
html,
body {
background: transparent;
}
import {
init,
destroy,
command,
setProperty,
getProperty,
observeMpvProperties,
MpvConfig
} from "tauri-plugin-mpv-api";
// Properties to observe
const OBSERVED_PROPERTIES = ['pause', 'time-pos', 'duration', 'filename'] as const;
// mpv configuration
const mpvConfig: MpvConfig = {
mpvArgs: [
'--vo=gpu-next',
'--hwdec=auto-safe',
'--keep-open=yes',
'--force-window',
],
observedProperties: OBSERVED_PROPERTIES,
ipcTimeoutMs: 2000,
};
try {
await init(mpvConfig);
console.log('mpv initialization completed successfully!');
} catch (error) {
console.error('mpv initialization failed:', error);
}
// Observe properties
const unlisten = await observeMpvProperties(
OBSERVED_PROPERTIES,
({ name, data }) => {
switch (name) {
case 'pause':
console.log('Playback paused state:', data);
break;
case 'time-pos':
console.log('Current time position:', data);
break;
case 'duration':
console.log('Duration:', data);
break;
case 'filename':
console.log('Current playing file:', data);
break;
}
});
// Unlisten when no longer needed
unlisten();
// Use the simple shortcut for most commands
await command('loadfile', ['/path/to/video.mp4']);
await command('seek', [10, 'relative']); // Seek 10 seconds forward
// Use the full object format if you need to provide a custom request_id
await command({ command: ['stop'], request_id: 123 });
// `setProperty` is type-safe for known properties
await setProperty('volume', 75);
await setProperty('pause', false);
// `getProperty` returns a typed value for known properties
const volume = await getProperty('volume'); // `volume` is a number
console.log('Current volume:', volume);
// You can also explicitly set the type for unknown or custom properties
const customProp = await getProperty<string>('my-custom-property');
// Destroy mpv when your app closes or the player is no longer needed
await destroy();
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
FAQs
A Tauri plugin for embedding the mpv player in your app by controlling its process via JSON IPC.
The npm package tauri-plugin-mpv-api receives a total of 41 weekly downloads. As such, tauri-plugin-mpv-api popularity was classified as not popular.
We found that tauri-plugin-mpv-api demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
npm now links to Socket's security analysis on every package page. Here's what you'll find when you click through.

Security News
A compromised npm publish token was used to push a malicious postinstall script in cline@2.3.0, affecting the popular AI coding agent CLI with 90k weekly downloads.

Product
Socket is now scanning AI agent skills across multiple languages and ecosystems, detecting malicious behavior before developers install, starting with skills.sh's 60,000+ skills.