professional dummy
professional dummy

Reputation: 11

Web scraping youtube page

i'm trying to get the title of youtube videos given a link.

But i'm unable to access the element that hold the title. I'm using bs4 to parse the html. I noticed im unable to access any element that is within 'ytd-app' tag in the youtube page.

import bs4
import requests

listed_url = "https://www.youtube.com/watch?v=9IfT8KXX_9c&list=PLQVvvaa0QuDfKTOs3Keq_kaG2P55YRn5v&index=31"
listed = requests.get(listed_url)
soup = bs4.BeautifulSoup(listed.text, "html.parser")

a = soup.find_all(attrs={"class": "style-scope ytd-video-primary-info-renderer"})
print(a)

So how can i get the video title ? Is there something i'm doing wrong or youtube intentionally created a tag like this to prevent web_scraping ?

Upvotes: 0

Views: 1474

Answers (1)

Bhavya Parikh
Bhavya Parikh

Reputation: 3400

See class that you are using is render through Javascript and all the contents are dynamic so it is very difficult to find any data using bs4

So what you can do find data in soup by manually and find particular tag

Also you can try out with pytube

import bs4
import requests

listed_url = "https://www.youtube.com/watch?v=9IfT8KXX_9c&list=PLQVvvaa0QuDfKTOs3Keq_kaG2P55YRn5v&index=31"
listed = requests.get(listed_url)
soup = bs4.BeautifulSoup(listed.text, "html.parser")

soup.find("title").get_text()

Upvotes: 1

Related Questions