Fixing three youtube issues: broken usernames/urls (non-uploads), 404 pages, and over-expanding content due to fixvid.

This commit is contained in:
Samuel Clay 2015-04-29 17:16:15 -07:00
parent bdd12cf2ee
commit dabd81608d

View file

@ -131,10 +131,17 @@ class FetchFeed:
def fetch_youtube(self, address): def fetch_youtube(self, address):
try: try:
username = re.search('gdata.youtube.com/feeds/\w+/users/(\w+)/uploads', address).group(1) username_groups = re.search('gdata.youtube.com/feeds/\w+/users/(\w+)/uploads', address)
if not username_groups:
return
username = username_groups.group(1)
except IndexError: except IndexError:
return return
video_ids_xml = requests.get("https://www.youtube.com/feeds/videos.xml?user=%s" % username) video_ids_xml = requests.get("https://www.youtube.com/feeds/videos.xml?user=%s" % username)
if video_ids_xml.status_code != 200:
return
video_ids_soup = BeautifulSoup(video_ids_xml.content) video_ids_soup = BeautifulSoup(video_ids_xml.content)
video_ids = [] video_ids = []
for video_id in video_ids_soup.findAll('yt:videoid'): for video_id in video_ids_soup.findAll('yt:videoid'):
@ -160,11 +167,14 @@ class FetchFeed:
thumbnail = video['snippet']['thumbnails'].get('high') thumbnail = video['snippet']['thumbnails'].get('high')
if not thumbnail: if not thumbnail:
thumbnail = video['snippet']['thumbnails'].get('medium') thumbnail = video['snippet']['thumbnails'].get('medium')
content = """<div class="NB-youtube-player">%s</div><br>%s<br><img src="%s" style="display:none" />""" % ( content = """<div class="NB-youtube-player">%s</div>
<div class="NB-youtube-description">%s</div>
<img src="%s" style="display:none" />""" % (
video['player']['embedHtml'], video['player']['embedHtml'],
linebreaks(video['snippet']['description']), linebreaks(video['snippet']['description']),
thumbnail['url'] if thumbnail else "", thumbnail['url'] if thumbnail else "",
) )
link = "http://www.youtube.com/watch?v=%s&feature=youtube_gdata" % video['id'] link = "http://www.youtube.com/watch?v=%s&feature=youtube_gdata" % video['id']
story_data = { story_data = {
'title': video['snippet']['title'], 'title': video['snippet']['title'],