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?
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.
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.
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.