BeautifulSoup на YouTube вам не поможет(хотя можно получить страницу с помощью selenium, а дальше разбирать её с помощью BeautifulSoup - но это уже другая история)
На страницах YouTube данных хранятся в Json. Их можно оттуда вырезать и работать с ними как с json. Можно попробовать банально искать с помощью питоновской функции find:
(Да простят меня питонисты за данный код))
Я не говорю что это правильно, и так нужно делать, но работает, и на том спасибо.
import requests
headers = {'user-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
}
url = 'https://www.youtube.com/watch?v=pSWOcXg703s'
response = requests.get(url,headers=headers)
html = response.text
first_1 = html.find('og:title" content="')+19
second_2 = html.find('">',first_1)
title = html[first_1:second_2]
first = html.find('videoViewCountRenderer')+72
second = html.find('"}]}',first)
views = html[first:second]
first_ = html.find('likeStatus":"INDIFFERENT","tooltip"')+37
second_ = html.find('"}},',first_)
likes = html[first_:second_].replace(' ','').split('/')
print(f'Название видео: {title}')
print(f'Сейчас смотрят: {views}')
print(f'Лайков: {likes[0]}')
print(f'Дизлайков: {likes[1]}')
На выходе:
Название видео: Elon Musk Live: Bitcoin BTC Talk, BTC Mass Adoption & SpaceX update [April, 2020]
Сейчас смотрят: 59 365
Лайков: 2 542
Дизлайков: 153