Automate Youtube with Python - GeeksforGeeks

28 Feb, 2022
In this article, we are going to see how to automate Youtube using Python.
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.
Python3
from selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditionsfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysimport speech_recognition as srimport pyttsx3import time  def automateYoutube(searchtext):       # giving the path of chromedriver to selenium webdriver    path = "C:\\Users\\hp\\Downloads\\chromedriver"     url = "https://www.youtube.com/"         # opening the youtube in chromedriver    driver = webdriver.Chrome(path)    driver.get(url)     # find the search bar using selenium find_element function    driver.find_element_by_name("search_query").send_keys(searchtext)     # clicking on the search button    driver.find_element_by_css_selector(        "#search-icon-legacy.ytd-searchbox").click()     # 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()try:    with sr.Microphone() as speaky:               # adjust the energy threshold based on        # the surrounding noise level        speak.adjust_for_ambient_noise(speaky, duration=0.2)        print("listening...")                 # 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 occured") # Calling the functionautomateYoutube(MyText)
Output:
saurabh1990aror
kashishsoda
varshagumber28
nikhatkhan11
Blogathon-2021
Picked
Python Selenium-Exercises
Python-selenium
Blogathon
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Import JSON Data into SQL Server?
How to Create a Table With Multiple Foreign Keys in SQL?
How to Install Tkinter in Windows?
SQL Query to Create Table With a Primary Key
SQL Query to Convert Datetime to Date
Read JSON file using Python
Adding new column to existing DataFrame in Pandas
Python map() function
How to get column names in Pandas dataframe