Я могу приостановить Spotify путем приостановки всего системного проигрывания программ (хорошо, переключившись). Как я могу сделать что-то как этот для приостанавливания/игрения видео YouTube в Google Chrome?
Ну, я предполагаю, что Вы могли всегда использовать инструмент как xdotool
для отправки k нажатие клавиши к окну YouTube. Оборотная сторона к этому методу - то, что необходимо активировать окно прежде, чем отправить нажатие клавиши (Chrome игнорирует ввод с клавиатуры, когда это не фокусируется).
следующий сценарий мог бы работать на Вас
#!/bin/bash
# Dependencies: xdotool (sudo apt-get install xdotool)
# Functions
save_active () {
# get current workspace
ActiveDesktop="$(xdotool get_desktop)"
# get current active window ID
ActiveWindowID="$(xdotool getactivewindow)"
# get current active window name
ActiveWindowName="$(xdotool getwindowname "$ActiveWindowID")"
}
restore_active(){
xdotool set_desktop "$ActiveDesktop"
# Activating the root window (Desktop) results in an error message, so we
# try to avoid it
[[ "$ActiveWindowName" != "Desktop" ]] && xdotool windowactivate "$ActiveWindowID"
}
youtube_playpause(){
xdotool search --name YouTube windowactivate
sleep 0.1
xdotool key --clearmodifiers k
}
# Main
## save active window and desktop
save_active
## activate Chrome YouTube window and send keyboard event
youtube_playpause
## restore previously active window/desktop
restore_active
<час> , Если управление YouTube с Вашими ключами медиа - то, что Вы после, кажется, существуют некоторые расширения там что требование добавить эту функциональность к Chrome:
я не дал им попытку сам, еще.
Вы могли запустить сессию Chrome (с Вашего плей-листа YouTube) использование Chrome WebDriver:
WebDriver является инструментом с открытым исходным кодом для автоматизированного тестирования веб-приложений через многие браузеры. Это обеспечивает возможности навигации к веб-страницам, вводу данных пользователем, выполнению JavaScript, и т.д. ChromeDriver является автономным сервером, который реализует проводной протокол WebDriver для Хрома. ChromeDriver доступен для Chrome на Android и Chrome на Рабочем столе (Mac, Linux, Windows и ChromeOS).
Установка следующая зависимость:
sudo apt-get install python-selenium
И загрузка Chromedriver от здесь , выберите тот, соответствующий Вашей архитектуре, например:
http://chromedriver.storage.googleapis.com/2.14/chromedriver_linux64.zip или http://chromedriver.storage.googleapis.com/2.14/chromedriver_linux32.zip
Извлечение chromedriver
файл, например, в Вашем $HOME
папка.
Тогда запускают chromedriver с Python, открывают терминал и тип:
$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> from selenium import webdriver
>>> from selenium.webdriver.chrome.options import Options
>>> chrome_options = Options()
>>> chrome_options.add_argument("--disable-sync")
>>> driver = webdriver.Chrome(os.path.expanduser('~/chromedriver'), chrome_options=chrome_options)
>>> # Open the desired youtube page:
>>> driver.get('https://www.youtube.com/watch?v=NxD_kWK8A5M&list=PLMquns5MbFKm_cVrB0ZjKlIlS5HCQL1dL')
>>> # Let selenium find the player container <div>
>>> video = driver.find_element_by_id("player-api")
>>> # And just click to play/pause your video:
>>> video.click()
>>>
Примечание : можно все еще использовать экземпляр Chrome, запущенный Chrome WebDriver для просмотра на других вкладках. даже если вкладка Youtube не является активной (никакой фокус). Эти video.click()
события продолжат работать.
Легкий: выполните spotify/youtube на одной сессии хрома и всего Вашего другого материала на другой хромовой сессии. Тогда всего
kill -SIGSTOP [pid]
для приостановки, и:
kill -SIGCONT [pid]
для возобновления.
, Если Вы делаете немного сценария для открытия двух сессий хрома:
google-chrome http://spotify.com/myplaylist http://youtube.com/myplaylist &
pgrep google-chrome > /tmp/TimChromepid.RUN
google-chrome &
и имеют изодромное с предварением готовое к Вашему сценарию переключателя:
if [ -f /tmp/TimChromepid.RUN ]; then
mv /tmp/TimChromepid.RUN /tmp/TimChromepid.PSD
kill -SIGSTOP < /tmp/TimChromepid.PSD
else
mv /tmp/TimChromepid.PSD /tmp/TimChromepid.RUN
kill -SIGCONT < /tmp/TimChromepid.RUN
fi
Это приостановило бы Spotify и YouTube и независимо от того, что Вы вставляете первую сессию Chrome.
Chromium теперь использует D-Bus для реализации MPRIS для мультимедийного контента, активного в данный момент в браузере, и браузеры, созданные на основе Chromium, такие как Google Chrome и Brave, наследуют эту функцию. Это означает, что медиаконтентом, активным в данный момент в таких браузерах, можно управлять с помощью такой утилиты, как playerctl, которая может отправлять и получать команды MPRIS.
Вы можете загрузить и установить playerctl из раздела их релизов на GitHub, а затем выполнить эту команду, чтобы приостановить текущий медиафайл в Chrome:
$ playerctl pause
Или вы можете управлять определенным экземпляром Chrome:
$ playerctl --list-all
chrome.instance24818
$ playerctl --player=chrome.instance24818 pause