mpv
может запускать lua пользовательские сценарии, некоторые из которых перечислены здесь . Один из них, notify , сгенерирует сложный notify-send
. У него есть несколько зависимостей, и я не смог заставить его работать в моей настройке, но следующий значительно упрощенный код сработал для меня. Поместите этот файл в~/.config/mpv/scripts/mynotify.lua
(при необходимости создайте каталог )и запустите mpv
как обычно. Вы должны увидеть уведомление об изменении исполнителя или названия.
-- based on https://github.com/rohieb/mpv-notify
-- https://unix.stackexchange.com/a/455198/119298
lastcommand = nil
function string.shellescape(str)
return "'"..string.gsub(str, "'", "'\"'\"'").."'"
end
function do_notify(a,b)
local command = ("notify-send -a mpv -- %s %s"):format(a:shellescape(),
b:shellescape())
if command ~= lastcommand then
os.execute(command)
lastcommand = command
end
end
function notify_current_track()
data = mp.get_property_native("metadata")
if data then
local artist = (data["ARTIST"] or data["artist"] or " ")
local title = (data["TITLE"] or data["title"] or " ")
if artist..title~=" " then
do_notify(artist, title)
return
end
end
local data = mp.get_property("path")
if data then
local file = data:gsub("^.-([^/]+)$","%1")
file = file:gsub("%....$","") -- delete 3 char suffix
local dir = data:gsub("^.-([^/]+)/[^/]*$","%1")
do_notify(dir, file)
end
end
mp.register_event("file-loaded", notify_current_track)
Эта обновленная версия ожидает событий, которые отправляются, когда новый файл готов к воспроизведению. Он пытается найти метаданные и извлечь из них исполнителя и название. Если он пуст, он получает текущее имя файла("path"
)и отделяет последнюю часть после /
, чтобы получить имя файла, из которого удаляются все конечные 3-символьные суффиксы. Он пытается найти последнюю часть имени файла в каталоге и использует эти 2 элемента в уведомлении. Если ваши каталоги структурированы, скажем, исполнитель/название альбома/название трека.aac , вы можете изменить это с помощью более подходящего сопоставления и извлечения шаблона. См. раздел lua о шаблонах .
Я не уверен, какие именно команды вы пробовали (в зависимости от обстоятельств, мои подсказки менее полезны ).
1. у меня эти команды работают (без DPI -Брандмауэр)
sudo apt-get update
sudo apt-get install wget ca-certificates
https://docs.microsoft.com/en-gb/windows/wsl/tutorials/wsl-vscode#update-your-linux-distribution
2. Если ваш прокси-сервер брандмауэра использует HTTPS Inspection(DPI)затем убедитесь, установлена "Certificate Trust chain"
Будьте внимательны (Сертификаты должны иметь расширение.crt )https://manpages.debian.org/stretch/ca-certificates/update-ca-certificates.8.en.html
Есть разные способы получить цепочку, например, через -веб-браузер.
(или не тестировалось:
openssl s_client -servername example.com -connect example.com:443 </dev/null 2>/dev/null | openssl x509 -text
example.com означает любой сервер за брандмауэром)
3. Если вы используете wsl2 :, проверьте, не подвержены ли вы ошибке wsl2 -с автоматическим созданием /etc/resolv.conf (неверный адрес сервера имен)
Чтобы определить правильный IP-адрес -, вы можете использовать этот командлет powershell:
Get-DnsClientServerAddress -AddressFamily ipv4 | Select-Object -ExpandProperty ServerAddresses