web-dev-qa-db-fra.com

Puis-je suspendre YouTube dans Chrome à partir de la ligne de commande?

Je peux mettre Spotify en pause en mettant en pause tous les programmes en cours de lecture (enfin, basculement). Comment puis-je faire quelque chose comme ça pour mettre en pause/lire des vidéos YouTube dans Google Chrome?

5
Tim

Eh bien, je suppose que vous pourriez toujours utiliser un outil comme xdotool pour envoyer un message. k appuyez sur la touche de votre fenêtre YouTube. L'inconvénient de cette méthode est que vous devez activer la fenêtre avant d'envoyer le raccourci clavier (Chrome ignore la saisie au clavier lorsque celle-ci n'est pas activée).

Le script suivant pourrait fonctionner pour vous

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

Si vous cherchez à contrôler YouTube avec vos clés multimédias, certaines extensions semblent prétendre ajouter cette fonctionnalité à Chrome:

Je ne leur ai pas encore essayé moi-même.

2
Glutanimate

Vous pouvez démarrer la session Chrome (avec votre liste de lecture Youtube) à l'aide de la commande Chrome WebDriver :

WebDriver est un outil open source permettant de tester automatiquement les applications Web sur de nombreux navigateurs. Il offre des fonctionnalités pour naviguer vers les pages Web, les entrées utilisateur, l'exécution de JavaScript, etc. ChromeDriver est un serveur autonome qui implémente le protocole filaire de WebDriver pour Chromium. ChromeDriver est disponible pour Chrome sur Android et Chrome sur le bureau (Mac, Linux, Windows et ChromeOS). .

Installez la dépendance suivante:

Sudo apt-get install python-Selenium

Et téléchargez le Chromedriver à partir de ici , sélectionnez celui correspondant à votre architecture, par exemple:

http://chromedriver.storage.googleapis.com/2.14/chromedriver_linux64.Zip ou http://chromedriver.storage.googleapis.com/2.14/chromedriver_linux32.Zip

Extrayez le fichier chromedriver, par exemple, dans votre dossier $HOME.

Puis lancez le chromedriver à partir de python, ouvrez un terminal et tapez:

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

Remarque : vous pouvez toujours utiliser l'instance Chrome lancée par Chrome WebDriver pour naviguer dans d'autres onglets. même si l'onglet Youtube n'est pas actif (pas de focus). Les événements video.click() continueront à fonctionner.

enter image description here

3
Sylvain Pineau

Facile: lancez spotify/youtube dans une session de chrome et tous vos autres éléments dans une autre session chrome. Alors juste

kill -SIGSTOP [pid]

faire une pause et:

kill -SIGCONT [pid]

pour reprendre.

Si vous faites un petit script pour ouvrir deux sessions de chrome, par:

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

et préparez le pid pour votre script de bascule:

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 et Youtube seraient mis en pause, ainsi que tout ce que vous avez mis dans la première session Chrome.

2
Fabby