web-dev-qa-db-ja.com

コマンドラインからChromeでYouTubeを一時停止できますか?

すべてのシステムプログラムの再生を一時停止することで、Spotifyを一時停止できます(まあ、切り替え)。 Google ChromeでYouTube動画を一時停止/再生するには、どうすればよいですか?

5
Tim

さて、あなたはいつでも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
Glutanimate

Chrome WebDriver を使用して、Chromeセッションを(Youtubeプレイリストで)開始できます。

WebDriverは、多くのブラウザーにわたるwebappsの自動テスト用のオープンソースツールです。 Webページ、ユーザー入力、JavaScript実行などにナビゲートする機能を提供します。 ChromeDriverは、Chromium用のWebDriverのワイヤプロトコルを実装するスタンドアロンサーバーです。 ChromeDriverは、ChromeでAndroidで、およびChromeでデスクトップ(Mac、Linux、Windows、ChromeOS)で使用できます。 。

次の依存関係をインストールします。

Sudo apt-get install python-Selenium

here からChromedriverをダウンロードし、アーキテクチャに対応するものを選択します。例:

http://chromedriver.storage.googleapis.com/2.14/chromedriver_linux64.Zip または http://chromedriver.storage.googleapis.com/2.14/chromedriver_linux32.Zip

たとえば$HOMEフォルダーにあるchromedriverファイルを抽出します。

次に、pythonからchromedriverを起動し、ターミナルを開いて次を入力します。

$ 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 WebDriverによって開始されたChromeインスタンスを引き続き使用して、他のタブを参照できます。 Youtubeタブがアクティブではない場合でも(フォーカスなし)。 video.click()イベントは引き続き機能します。

enter image description here

3
Sylvain Pineau

簡単:chromeの1つのセッションでspotify/youtubeを実行し、別のchromeセッションで他のすべてのものを実行します。それからちょうど

kill -SIGSTOP [pid]

一時停止するには:

kill -SIGCONT [pid]

再開します。

クロムの2つのセッションを開く小さなスクリプトを作成する場合:

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セッションで入力したものはすべて一時停止します。

2
Fabby