Действительно ли я могу приостановить YouTube в Chrome из командной строки?

Я могу приостановить Spotify путем приостановки всего системного проигрывания программ (хорошо, переключившись). Как я могу сделать что-то как этот для приостанавливания/игрения видео YouTube в Google Chrome?

5
задан 2 February 2015 в 03:20

4 ответа

Ну, я предполагаю, что Вы могли всегда использовать инструмент как 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:

я не дал им попытку сам, еще.

2
ответ дан 23 November 2019 в 09:06

Вы могли запустить сессию 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() события продолжат работать.

enter image description here

3
ответ дан 23 November 2019 в 09:06

Легкий: выполните 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.

2
ответ дан 23 November 2019 в 09:06

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
3
ответ дан 17 April 2020 в 19:08

Другие вопросы по тегам:

Похожие вопросы: