Greasy Fork is available in English.
Перенаправляет открытие acestream:// ссылки в VLC Player (vlc:// протокол с fallback на M3U)
Открывает ссылки вида acestream://… прямо в VLC — без ручного копирования хэша, без сторонних сервисов.
Лицензия: MIT · Платформы: Windows 10/11, Linux · Менеджеры скриптов: Tampermonkey, Violentmonkey, Greasemonkey
На странице с плагином AceStream часто встречаются ссылки вида acestream://<hash>. Обычно браузер не знает, что с ними делать, либо открывает страницу с ошибкой. Этот скрипт:
http://127.0.0.1:6878/ace/getstream?id=<hash>);vlc://-протокол (мгновенно, без промежуточных файлов);vlc:// не зарегистрирован в системе — автоматически скачивает .m3u-плейлист, который откроется в VLC, если он назначен для .m3u обработчиком по умолчанию.Шаг 4 — это подстраховка «из коробки»: скрипт работает даже без ручной настройки, просто чуть медленнее (через скачивание плейлиста). Шаг 3 превращает клик в мгновенное воспроизведение, но требует один раз вручную зарегистрировать vlc://-протокол в системе (см. ниже).
127.0.0.1:6878 (стандартный порт)..desktop-файлы и xdg-mime (GNOME, KDE, XFCE и большинство других). macOS не тестировалась.vlc:// (шаг 3 выше) — права на редактирование реестра (Windows) или на запись в ~/.local/share/applications (Linux). Без этого тоже всё работает, просто через .m3u-фоллбэк.vlc://-протокол — см. разделы ниже для своей ОС. Это включает мгновенное воспроизведение вместо скачивания .m3u.vlc:// (только штатные средства, ничего доустанавливать не нужно)Создай текстовый файл vlc-protocol.reg с содержимым ниже (кодировка сохранения не важна — весь текст состоит из ASCII-символов) и запусти его двойным щелчком, подтвердив добавление в реестр:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\vlc]
@="URL:vlc Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\vlc\shell]
[HKEY_CLASSES_ROOT\vlc\shell\open]
[HKEY_CLASSES_ROOT\vlc\shell\open\command]
@="powershell.exe -NoProfile -WindowStyle Hidden -Command \"& {param($u) $u = $u -replace '^vlc://',''; $u = 'http://' + $u; $u = [System.Uri]::UnescapeDataString($u); $q = [char]34; try { Start-Process -FilePath 'C:\\Program Files\\VideoLAN\\VLC\\vlc.exe' -ArgumentList ($q+$u+$q) } catch { $_ | Out-File -Append ($env:TEMP+'\\ace2vlc.log') } } '%1'\""
Что делает эта запись: при переходе по vlc://… Windows напрямую вызывает powershell.exe (входит в состав системы), который срезает vlc://, восстанавливает http:// и передаёт готовый адрес в VLC. Если путь к VLC у тебя нестандартный — поменяй C:\Program Files\VideoLAN\VLC\vlc.exe внутри команды на свой. После импорта перезапусти браузер (он кэширует обработчики протоколов).
Если что-то пойдёт не так — ошибки пишутся в %TEMP%\ace2vlc.log.
vlc://Создай файл ~/.local/share/applications/vlc-protocol.desktop:
[Desktop Entry]
Name=VLC Protocol Handler (AceStream2VLC)
Exec=sh -c 'u="$1"; u="${u#vlc://}"; exec vlc "http://$u"' sh %u
Type=Application
MimeType=x-scheme-handler/vlc;
NoDisplay=true
Затем выполни:
xdg-mime default vlc-protocol.desktop x-scheme-handler/vlc
update-desktop-database ~/.local/share/applications/
Проверить, что обработчик назначился, можно командой:
xdg-mime query default x-scheme-handler/vlc
Она должна вывести vlc-protocol.desktop. После этого перезапусти браузер.
В самом начале файла скрипта — блок с константами, которые можно менять под себя:
const DEBUG = true; // true — писать ход работы в консоль браузера (F12), false — тишина
const VLC_PROTO = true; // true — пробовать vlc:// с фоллбэком на .m3u; false — сразу .m3u
const PROTO_TIMEOUT = 1500; // мс ожидания реакции ОС на vlc://, после — фоллбэк на .m3u
Если vlc:// зарегистрирован вручную (см. выше), PROTO_TIMEOUT можно смело уменьшить до 800 — отклик станет быстрее.
vlc://, построен на событии blur: когда ОС передаёт ссылку внешней программе, окно браузера теряет фокус. Если фокус не потерян за PROTO_TIMEOUT мс — протокол считается незарегистрированным, и скрипт скачивает .m3u.vlc:// собирается без вложенной схемы (vlc://host:port/path, а не vlc://http://host:port/path) — это принципиально: вложенная схема ломается при нормализации URL в браузере и до VLC доходит мусор.127.0.0.1:6878 (можно открыть этот адрес в браузере — Engine должен ответить)..m3u, а не открывается VLC мгновенно — значит vlc:// не зарегистрирован в системе (см. разделы «Установка» выше) либо браузер был не перезапущен после регистрации..m3u тоже не открывается в VLC — назначь VLC приложением по умолчанию для .m3u/.m3u8 (правый клик по файлу → «Открыть с помощью» → VLC → «Всегда»).xdg-mime default vlc.desktop audio/x-mpegurl.DEBUG = true в настройках скрипта и посмотри консоль браузера (F12 → Console) — там будет видно, на каком шаге что произошло.MIT License. Используй, изменяй и распространяй свободно, при сохранении уведомления об авторстве.