Quellcode durchsuchen

Fix Brightcove detection when another Flash object is on the page

The regex used non-greedy match, but alas it failed on input like this:

    <object class="...> ... class="BrightcoveExperience"

It captured two objects and the intervening HTML.  This commit fixes this by
not allowing a ">" to appear before BrightcoveExperience.

Video in question: http://www.harpercollinschildrens.com/feature/petethecat/
Joey Adams vor 12 Jahren
Ursprung
Commit
3283533149
1 geänderte Dateien mit 1 neuen und 1 gelöschten Zeilen
  1. 1 1
      youtube_dl/extractor/generic.py

+ 1 - 1
youtube_dl/extractor/generic.py

@@ -121,7 +121,7 @@ class GenericIE(InfoExtractor):
 
 
         self.report_extraction(video_id)
         self.report_extraction(video_id)
         # Look for BrightCove:
         # Look for BrightCove:
-        m_brightcove = re.search(r'<object.+?class=([\'"]).*?BrightcoveExperience.*?\1.+?</object>', webpage, re.DOTALL)
+        m_brightcove = re.search(r'<object[^>]+?class=([\'"])[^>]*?BrightcoveExperience.*?\1.+?</object>', webpage, re.DOTALL)
         if m_brightcove is not None:
         if m_brightcove is not None:
             self.to_screen(u'Brightcove video detected.')
             self.to_screen(u'Brightcove video detected.')
             bc_url = BrightcoveIE._build_brighcove_url(m_brightcove.group())
             bc_url = BrightcoveIE._build_brighcove_url(m_brightcove.group())