[francetelevisions] get better video url

This commit is contained in:
Bezleputh 2014-05-06 21:34:34 +02:00 committed by Florent
commit 297132e200
2 changed files with 16 additions and 3 deletions

View file

@ -17,6 +17,8 @@
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
import requests
from weboob.tools.browser2 import PagesBrowser, URL from weboob.tools.browser2 import PagesBrowser, URL
from .pages import IndexPage, VideoPage from .pages import IndexPage, VideoPage
@ -36,7 +38,18 @@ class PluzzBrowser(PagesBrowser):
return self.index_page.go(pattern=pattern).iter_videos() return self.index_page.go(pattern=pattern).iter_videos()
def get_video(self, _id, video=None): 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): def latest_videos(self):
return self.latest_page.go().iter_videos() return self.latest_page.go().iter_videos()

View file

@ -21,7 +21,6 @@ from weboob.capabilities.image import BaseImage
from weboob.capabilities.video import BaseVideo from weboob.capabilities.video import BaseVideo
from datetime import timedelta 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.page import HTMLPage, method, ItemElement, ListElement, JsonPage
from weboob.tools.browser2.filters import Filter, Link, CleanText, Regexp, Attr, Format, DateTime, Env, Dict, Duration 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']: for video in el['videos']:
if video['format'] != 'm3u8-download': if video['format'] != 'm3u8-download':
continue continue
self.env['url'] = video['url'] self.env['url'] = video['url']
obj_id = Env('_id') obj_id = Env('_id')
@ -80,7 +80,7 @@ class VideoPage(JsonPage):
obj_date = DateTime(Dict('diffusion/date_debut')) obj_date = DateTime(Dict('diffusion/date_debut'))
obj_duration = Duration(Dict('duree')) obj_duration = Duration(Dict('duree'))
obj_description = Dict('synopsis') obj_description = Dict('synopsis')
obj_ext = 'mp4' obj_ext = 'm3u8'
def obj_thumbnail(self): def obj_thumbnail(self):
url = Format('http://pluzz.francetv.fr%s', Dict('image'))(self) url = Format('http://pluzz.francetv.fr%s', Dict('image'))(self)