diff --git a/modules/francetelevisions/browser.py b/modules/francetelevisions/browser.py index bb1d5fd5..f7347c16 100644 --- a/modules/francetelevisions/browser.py +++ b/modules/francetelevisions/browser.py @@ -17,6 +17,8 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . +import requests + from weboob.tools.browser2 import PagesBrowser, URL from .pages import IndexPage, VideoPage @@ -36,7 +38,18 @@ class PluzzBrowser(PagesBrowser): return self.index_page.go(pattern=pattern).iter_videos() def get_video(self, _id, video=None): - return self.video_page.go(_id=_id).get_video(obj=video) + video = self.video_page.go(_id=_id).get_video(obj=video) + for item in self.read_url(video.url): + pass + + video.url = item + return video + + def read_url(self, url): + r = requests.get(url, stream=True) + buf = r.iter_lines() + r.close() + return buf def latest_videos(self): return self.latest_page.go().iter_videos() diff --git a/modules/francetelevisions/pages.py b/modules/francetelevisions/pages.py index 06544de3..486d351c 100644 --- a/modules/francetelevisions/pages.py +++ b/modules/francetelevisions/pages.py @@ -21,7 +21,6 @@ from weboob.capabilities.image import BaseImage from weboob.capabilities.video import BaseVideo from datetime import timedelta -from dateutil.parser import parse as parse_date from weboob.tools.browser2.page import HTMLPage, method, ItemElement, ListElement, JsonPage from weboob.tools.browser2.filters import Filter, Link, CleanText, Regexp, Attr, Format, DateTime, Env, Dict, Duration @@ -72,6 +71,7 @@ class VideoPage(JsonPage): for video in el['videos']: if video['format'] != 'm3u8-download': continue + self.env['url'] = video['url'] obj_id = Env('_id') @@ -80,7 +80,7 @@ class VideoPage(JsonPage): obj_date = DateTime(Dict('diffusion/date_debut')) obj_duration = Duration(Dict('duree')) obj_description = Dict('synopsis') - obj_ext = 'mp4' + obj_ext = 'm3u8' def obj_thumbnail(self): url = Format('http://pluzz.francetv.fr%s', Dict('image'))(self)