Posso pausar o YouTube no Chrome a partir da linha de comando?

5

Eu posso pausar o Spotify parando todos os programas do sistema tocando (bem, alternando). Como posso fazer algo assim para pausar / reproduzir vídeos do YouTube no Google Chrome?

    
por Tim 17.10.2014 / 12:07

3 respostas

2

Bem, eu acho que você sempre pode usar uma ferramenta como xdotool para enviar um pressionamento de tecla k para sua janela do YouTube. A desvantagem desse método é que você precisa ativar a janela antes de enviar o pressionamento de tecla (o Chrome ignora a entrada do teclado quando não está focado).

O script a seguir pode funcionar para você

#!/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

Se você quer controlar o YouTube com suas chaves de mídia, parece que existem algumas extensões que pretendem adicionar essa funcionalidade ao Google Chrome:

Ainda não dei uma chance a eles.

    
por Glutanimate 04.02.2015 / 14:58
3

Você pode iniciar a sessão do Chrome (com sua lista de reprodução do YouTube) usando o Chrome WebDriver :

  

WebDriver é uma ferramenta de software livre para testes automatizados de aplicativos da web   em vários navegadores. Ele fornece recursos para navegar na web   páginas, entrada do usuário, execução de JavaScript e muito mais. O ChromeDriver é um   servidor autônomo que implementa o protocolo de fio do WebDriver para   Cromo O ChromeDriver está disponível para o Chrome no Android e o Chrome   na área de trabalho (Mac, Linux, Windows e ChromeOS).

Instale a seguinte dependência:

sudo apt-get install python-selenium

E faça o download do Chromedriver de aqui , selecione o que corresponde à sua arquitetura, por exemplo:

link ou link

Extraia o arquivo chromedriver , por exemplo, na sua pasta $HOME .

Em seguida, inicie o chromedriver a partir do python, abra um terminal e digite:

$ 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()
>>> 

Observação : você ainda pode usar a instância do Chrome iniciada pelo Chrome WebDriver para navegar em outras guias. mesmo se a aba do Youtube não for a ativa (sem foco). Os eventos video.click() continuarão funcionando.

    
por Sylvain Pineau 30.01.2015 / 15:34
2

Fácil: execute o spotify / youtube em uma sessão do chrome e todas as outras coisas em outra sessão do Chrome. Então apenas

kill -SIGSTOP [pid]

para pausar e:

kill -SIGCONT [pid]

para retomar.

Se você criar um pequeno script para abrir duas sessões de cromo,

google-chrome http://spotify.com/myplaylist http://youtube.com/myplaylist &
pgrep google-chrome > /tmp/TimChromepid.RUN
google-chrome &

e prepare o pid para o seu script de alternância:

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

Interromperia o Spotify, o Youtube e tudo o que você colocar na primeira sessão do Chrome.

    
por Fabby 30.01.2015 / 11:40