Я могу приостановить Spotify, приостанавливая воспроизведение всех системных программ (ну, переключаясь). Как я могу сделать что-то подобное для приостановки / воспроизведения видео на YouTube в Google Chrome?
Вы можете запустить сеанс Chrome (с вашим списком воспроизведения Youtube) с помощью Chrome WebDriver:
WebDriver - это инструмент с открытым исходным кодом для автоматического тестирования веб-страниц во многих браузерах. Он предоставляет возможности для навигации по веб-страницам, вводам пользователей, выполнению JavaScript и т. Д. ChromeDriver - автономный сервер, который реализует проводной протокол WebDriver для Chromium. ChromeDriver доступен для Chrome на Android и Chrome на рабочем столе (Mac, Linux, Windows и ChromeOS).Установите следующую зависимость:
sudo apt-get install python-selenium
Загрузите Chromedriver из Chrome WebDriver , выберите тот, который соответствует вашей архитектуре, например:
http://chromedriver.storage.googleapis.com/2.14/chromedriver_linux64.zip или http://chromedriver.storage.googleapis.com/2.14/chromedriver_linux32.zip
Извлеките chromedriver например, в вашей папке $HOME.
Затем запустите хромированный рекордер из 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 &
и у вас готов pid для вашего скрипта переключения:
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.