Spaces:
Runtime error
Runtime error
File size: 1,378 Bytes
7b715b6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import requests
from requests.exceptions import MissingSchema
def extract_titles(url = "https://www.youtube.com/watch?v=CuSxk_DNau8&ab_channel=PeppaPigParodies"):
try:
page = requests.get(url)
except MissingSchema as e:
message = e.args[0]
substr = '''No scheme supplied. '''
message = message[:message.find(substr)] + message[message.find(substr) + len(substr):]
raise RuntimeError(message)
except Exception as e:
message = f'''Invalid URL '{url}'. Please, try another one.'''
raise RuntimeError(message)
if not page.ok:
message = '''This video isn't available.'''
raise RuntimeError(message)
try:
txt = page.text
title_start = '''meta name="title" content="'''
pos = txt.find(title_start)
if pos == -1:
raise RuntimeError
title = txt[pos + len(title_start):]
title = title[:title.find('"')]
channel_start = '''<link itemprop="name" content="'''
pos = txt.find(channel_start)
if pos == -1:
raise RuntimeError
channel = txt[pos + len(channel_start):]
channel = channel[:channel.find('"')]
except Exception as e:
message = '''Can't detect channel or video title.\nPlease, try another link.'''
raise RuntimeError(message)
return channel, title |