Open In App
Related Articles

Automate Youtube with Python

Improve Article
Save Article
Like Article

In this article, we are going to see how to automate Youtube using Python.

Module used

  • Selenium: It controlling a web browser through the program
  • pyttsx3: It is a text-to-speech conversion library in Python
  • speech_recognition: Speech Recognition is an important feature in several applications used such as home automation, artificial intelligence, etc
  • pyaudio: It is used to play and record audio on a variety of platforms

Make sure that you have noted the location where the chromedriver has been downloaded (as it is used in our python script). Now After downloading extract the zip file and please note the file location of the extracted file as we have needed it later in python code. (You can find the location by clicking on properties and then details).


  • Import the library which we have installed.
  • Then we have to take the input search query using the speech_recognition library. we can do this by making an instance of speech_recognition library as sr.Recognizer() .
  • After this adjusting the threshold frequency and convert the voice input into a string.
  • Then, the main part comes into the picture, we have created a function automateYoutube() which plays the required video from Youtube.
  • In this function create we driver instance using function webdriver.Chrome() which takes the path of chromedriver as the parameter.
  • Finally, find the name or id or class or CSS selector of the search bar and search button by right-clicking inspect search bar and .search button.
  • Now, just call the automateYoutube() function to see the output.
  • Now we have to automate play/pause buttons for that we again find the CSS selector of play/pause button using selenium.

Below is the Full Implementation


from selenium import webdriver
from import WebDriverWait
from import expected_conditions
from import By
from selenium.webdriver.common.keys import Keys
import speech_recognition as sr
import pyttsx3
import time
def automateYoutube(searchtext):
    # giving the path of chromedriver to selenium webdriver
    path = "C:\\Users\\hp\\Downloads\\chromedriver"
    url = ""
    # opening the youtube in chromedriver
    driver = webdriver.Chrome(path)
    # find the search bar using selenium find_element function
    # clicking on the search button
    # For finding the right match search
    WebDriverWait(driver, 0).until(expected_conditions.title_contains(MyText))
    # clicking on the match search having same as in searched query
    WebDriverWait(driver, 30).until(
        expected_conditions.element_to_be_clickable((By.ID, "img"))).click()
    # while(True):
    #     pass
speak = sr.Recognizer()
    with sr.Microphone() as speaky:
        # adjust the energy threshold based on
        # the surrounding noise level
        speak.adjust_for_ambient_noise(speaky, duration=0.2)
        # listens for the user's input
        searchquery = speak.listen(speaky)
        # Using google to recognize audio
        MyText = speak.recognize_google(searchquery)
        MyText = MyText.lower()
except sr.RequestError as e:
    print("Could not request results; {0}".format(e))
except sr.UnknownValueError:
    print("unknown error occurred")
# Calling the function


Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 16 Jun, 2022
Like Article
Save Article
Similar Reads
Related Tutorials