From ce0fec8d346f3f9a3423874ea58513cea3cb1847 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Sun, 13 Mar 2011 14:38:20 +0100 Subject: [PATCH] fix getting video from an url, and catch errors --- weboob/backends/youtube/backend.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/weboob/backends/youtube/backend.py b/weboob/backends/youtube/backend.py index bbf2fb40..eff54eb5 100644 --- a/weboob/backends/youtube/backend.py +++ b/weboob/backends/youtube/backend.py @@ -20,6 +20,7 @@ from __future__ import with_statement import datetime import gdata.youtube.service +import re import urllib from weboob.capabilities.video import ICapVideo @@ -87,9 +88,21 @@ class YoutubeBackend(BaseBackend, ICapVideo): LICENSE = 'GPLv3' BROWSER = YoutubeBrowser + URL_RE = re.compile(r'https?://.*youtube.com/watch\?v=(.*)') + def get_video(self, _id): + m = self.URL_RE.match(_id) + if m: + _id = m.group(1) + yt_service = gdata.youtube.service.YouTubeService() - entry = yt_service.GetYouTubeVideoEntry(video_id=_id) + try: + entry = yt_service.GetYouTubeVideoEntry(video_id=_id) + except gdata.service.Error, e: + if e.args[0]['status'] == 400: + return None + raise + video = get_video(entry) video.url = get_video_url(video) return video