[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
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
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()

View file

@ -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)