youtube js api -iframe
Привет.
Делаю кнопочки для себя в ютубе, свою кнопку плей, которая выставляет нужное качество проигрывания, скорость и запускает проигрывание видео (чтоб не тратить кучу времени на тыкание по выпадающим менюшкам).
Работает по принципу:
- тригернуть клик по шестерне, найти пункт меню скоростей, тригернуть клик по нему, найти пункт меню с нужной скоростью, тригернуть клик по нему.
- тригернуть клик по шестерне, найти пункт качества, тригернуть клик по нему, найти пункт с нужным качеством, тригернуть клик по нему.
- тригернуть клик по основной кнопке Play.
Проблемы:
- криво-косо;
- кнопка плей срабатывает не всегда (в районе 95%);
- изредка менюшка настроек остаётся открытой;
- поиск по пунктам меню осуществляется по тексту и зависит от локализации сайта, так как других идентификаторов пунктов меню нет, сами менюшки меняются от видео к видео.
Вопрос:
Может, есть какое-то API для этого?
С ходу гуглится только API для iframe, это совсем не то: нужно подгрузить библиотеку, создать плеер и тогда им управлять. А мне нужно чтоб на самом сайте ютуба, без iframe и когда плеер уже создан (*).
Чтобы можно было делать что-то типа:
ytPlayer.setQuality('360p'); // (**)
ytPlayer.setSpeed(1.5);
ytPlayer.playVideo();
(*) пробовал удалять ютубовский плеер и на его месте создавать iframe с плеером, но в нём не работает SponsorBlock и ещё некоторые фичи, а так же ломаются некоторые функции на странице ниже.
(**) часто не весь набор качеств доступен, нужно ещё как-то получать список
Подробнее
Истории на ночь - Радио тишина
YouTube,userscript,реактор,javascript,языки программирования,программирование,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор
Почему не могут блин сделать ползунок раза в два крупнее и шаг хотя бы 2%.
Помогает плагин с 600% звуком, но это тоже такое себе решение.
меня больше всего бесит что он скрытый, и на него надо навести чтобы он появился. КАК БУДТО ТАМ МЕСТА МАЛО. очень круто когда комп тормозит при открытии видео и колонки рвутся от бесвкусного опенинга, и ты лихорадочно пытаешся попасть по регулятору
меня это бесило, я тот блок сделал display: none, мне нафиг не нужны таймлайны, я видосы в фоне смотрю, не кликаю мышью чё-то выбирая там - "этот кусок смотрю, этот - не смотрю"...
так что меня интересуют сами названия функций, которые навешиваются на те пункты меню, а так же - получение некоей служебной информации по типу списка доступных вариантов качества ролика, возможно - списка субтитров и т.п. (или даже - изменение скорости не доступно в лайв-стримах - в будущее не убежишь).
расширения
поэтому, зачем тебе вообще те элементы? они именно что динамические, и формируются из этой же переменной.
в ней есть весь конфиг плеера, в том числе все качества и субтитры
просто возьми оттуда что тебе нужно, а кнопки сам себе нарисуй через document.createElement
а дальше берёшь video-тег и проставляешь ему что хочешь
Сходи сюда - https://openuserjs.org/group/youtube посмотри существующие реализации. Вот первое, что попалось на глаза - https://openuserjs.org/scripts/adisib/Youtube_HD/source
Поищи еще, может будут другие реализации
https://www.w3schools.com/tags/ref_av_dom.asp
Т.е. вканает прямо такое в консольке по f12:
/* Тут сразу нужный тег по первому же селектору отдается */
const video = document.querySelector('video');
video.pause();
video.playbackRate = 3;
video.play();
Вот что со сменой качества делать мне сходу непонятно, надо отдельно разбираться.
Если да, то открывай в лисе about:config ищи full-screen-api.transition-duration и меняй все значения на 0.
Зачем ускорять то от чего можно избавиться?
(у меня отдельный старенький комп под ютуб)
встроенная функция мне очень не нравится.