Portál AbcLinuxu, 2. prosince 2025 12:52
~/.config/mpv/mpv.conf doplníme nasledujúci riadok s príslušne nastavenou maximálnou výškou prehrávaného HD videa:
ytdl-format=bestvideo[ext=mp4][height<=1080]+bestaudio/best[ext=mp4]/best
/usr/bin/ytvideo.sh skript, ktorý použijeme na procesovanie ytvideo:// URL. Samotná URL sa bude skladať z ytvideo:// prefixu nasledovanom samotnou URL adresou YouTube videa a znakom |, za ktorým pôjdu MPV parametre na umiestnenie videa na obrazovke, napríklad ytvideo://https://www.youtube.com/watch?v=8eXM93Wyrro|--geometry=854x480+314+511. Obsah Shell skriptu:
#!/bin/sh
IFS=\| read url options <<< "${1//%20/ }"
/usr/bin/mpv ${options} "${url#ytvideo://}"
root pridáme podporu pre ytvideo:// URL vytvorením /usr/share/applications/ytvideo.desktop súboru s nasledujúcim obsahom:
[Desktop Entry] Version=1.0 Name=MPV YouTube Exec=/usr/bin/ytvideo.sh %U Terminal=false Type=Application MimeType=x-scheme-handler/ytvideoa spustíme príkaz
update-desktop-database na aktualizovanie Desktop špecifikácii.
ytvideo:// URL. Keďže v JavaScripte sa nedá presne zistiť absolútna poloha HTML elementu na obrazovke, bude potrebné si manuálne doladiť horizontálny a vertikálny posun systémom pokus - omyl. V mojom prípade stačilo doplniť číslo 10:
// ==UserScript==
// @name YouTube MPV
// @namespace vip
// @match https://www.youtube.com/*
// @grant none
// ==/UserScript==
var p = document.getElementById("player");
if (p) {
p.addEventListener("click", function(e){
e.stopPropagation();
var list = document.getElementsByClassName("html5-video-player");
if (list.length) {
var rect = list[0].getBoundingClientRect();
var geometry = `${rect.width}x${rect.height}` +
`+${Math.ceil(rect.left) + window.screenX}` +
`+${rect.top + window.screenY + window.outerHeight - window.innerHeight + 10}`;
console.log(`ytvideo://${document.URL}|--geometry=${geometry}`);
window.open(`ytvideo://${document.URL}|--geometry=${geometry}`).close();
}
}, true);
}
ytvideo:// URL s /usr/bin/ytvideo.sh skriptom. Ďalšie YouTube videá sa po kliknutí už budú samé otvárať v MPV tak, ako je vidieť v priloženom obrázku.
Tiskni
Sdílej:
app.drawing_area.window.xid).
--wid je dost dobrý postřeh, ale bohužel to je asi nepoužitelné. Kreslí se to přes celé okno a argument --geometry je ignorován:
If an external window is specified using the --wid option, this option is ignored.Totéž platí o argumentu
--autofit, i když to dokumentace nezmiňuje.
Mimochodem, kdo byste s tím chtěl experimentovat (mě se to netýká; používám Chrome, problémy s výkonem nemám), tak ID okna zjistíte pomocí „xwininfo“. Podle titulku třeba:
mpv <zdroj> --wid=$(echo `xwininfo -tree -root | grep Chrome` | cut -f1)Jen tak mimochodem, Bash smrdí.
Já to řeším přes addon Custom Buttons, kde jsem si vytvořil tlačítko na lištu s následujícím kódem:
var localFile = Components.classes["@mozilla.org/file/local;1"].
createInstance(Components.interfaces.nsILocalFile);
var process = Components.classes["@mozilla.org/process/util;1"].
createInstance(Components.interfaces.nsIProcess);
var url = content.document.location.href;
var args = [url];
localFile.initWithPath("/bin/mpv");
process.init(localFile);
process.run(false, args, args.length);
Vygooglil jsem to před pár měsíci a maká to nádherně - vlezu na stránku videa, kliknu na tlačítko na toolbaru a otevře se mi okno s videem.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.