@ -1,12 +1,14 @@
# coding: utf-8
# coding: utf-8
from __future__ import unicode_literals
from __future__ import unicode_literals
import re
from . common import InfoExtractor
from . common import InfoExtractor
class Min20IE ( InfoExtractor ) :
class Min20IE ( InfoExtractor ) :
_VALID_URL = r ' http://www \ .20min \ .ch/ .+?-(?P<id>[0-9]+)$'
_VALID_URL = r ' http://www \ .20min \ .ch/ (videotv/\ ?vid=(?P<video_id>[0-9]+)| .+?-(?P<page_ id>[0-9]+)$) '
_TEST = {
_TEST S = [ {
' url ' : ' http://www.20min.ch/schweiz/news/story/-Wir-muessen-mutig-nach-vorne-schauen--22050469 ' ,
' url ' : ' http://www.20min.ch/schweiz/news/story/-Wir-muessen-mutig-nach-vorne-schauen--22050469 ' ,
' md5 ' : ' cd4cbb99b94130cff423e967cd275e5e ' ,
' md5 ' : ' cd4cbb99b94130cff423e967cd275e5e ' ,
' info_dict ' : {
' info_dict ' : {
@ -16,15 +18,29 @@ class Min20IE(InfoExtractor):
' description ' : ' Kein Land sei innovativer als die Schweiz, sagte Johann Schneider-Ammann in seiner Neujahrsansprache. Das Land müsse aber seine Hausaufgaben machen. ' ,
' description ' : ' Kein Land sei innovativer als die Schweiz, sagte Johann Schneider-Ammann in seiner Neujahrsansprache. Das Land müsse aber seine Hausaufgaben machen. ' ,
' thumbnail ' : ' http://www.20min.ch/images/content/2/2/0/22050469/10/teaserbreit.jpg '
' thumbnail ' : ' http://www.20min.ch/images/content/2/2/0/22050469/10/teaserbreit.jpg '
}
}
}
} , {
' url ' : ' http://www.20min.ch/videotv/?vid=469148&cid=2 ' ,
' md5 ' : ' b52d6bc6ea6398e6a38f12cfd418149c ' ,
' info_dict ' : {
' id ' : ' 469148 ' ,
' ext ' : ' flv ' ,
' title ' : ' 85 000 Franken für 15 perfekte Minuten ' ,
' description ' : ' Was die Besucher vom Silvesterzauber erwarten können. (Video: Alice Grosjean/Murat Temel) ' ,
' thumbnail ' : ' http://thumbnails.20min-tv.ch/server063/469148/frame-72-469148.jpg '
}
} ]
# location of the flv videos, can't be extracted from the web page
# location of the flv videos, can't be extracted from the web page
_BASE_URL = " http://flv-rr.20min-tv.ch/videos/ "
_BASE_URL = " http://flv-rr.20min-tv.ch/videos/ "
def _real_extract ( self , url ) :
def _real_extract ( self , url ) :
video_id = self . _match_id ( url )
mobj = re . match ( self . _VALID_URL , url )
video_id = mobj . group ( ' page_id ' )
if video_id is None :
# URL from the videoportal
video_id = mobj . group ( ' video_id ' )
webpage = self . _download_webpage ( url , video_id )
webpage = self . _download_webpage ( url , video_id )
title = self . _html_search_regex ( r ' <h1><span>(.+?)</span></h1> ' , webpage , ' title ' )
title = self . _html_search_regex ( r ' <h1> .* <span>(.+?)</span></h1>' , webpage , ' title ' )
flash_id = self . _search_regex ( r " so \ .addVariable \ ( \" file1 \" , \" ([0-9]+) \" \ ) " , webpage , ' flash_id ' )
flash_id = self . _search_regex ( r " so \ .addVariable \ ( \" file1 \" , \" ([0-9]+) \" \ ) " , webpage , ' flash_id ' )
description = self . _html_search_regex ( r ' <meta name= " description " content= " (.+?) " /> ' , webpage , ' description ' )
description = self . _html_search_regex ( r ' <meta name= " description " content= " (.+?) " /> ' , webpage , ' description ' )