| 39 | return int(re.search(r'\D*(\d{4,})\D*', url).group(1)) |
| 40 | |
| 41 | def process(self, pyfile): |
| 42 | xml = etree.fromstring( |
| 43 | self.load( |
| 44 | self.XML_API % |
| 45 | self.get_id( |
| 46 | pyfile.url), |
| 47 | decode=False)) |
| 48 | |
| 49 | status = xml.findtext("./status/statuscode") |
| 50 | if status != "ok": |
| 51 | self.fail(_("Error retrieving manifest")) |
| 52 | |
| 53 | video = xml.find("video") |
| 54 | |
| 55 | pyfile.name = video.findtext("information/title") |
| 56 | |
| 57 | target_url = sorted((v for v in video.iter("formitaet") if self.video_valid(v)), |
| 58 | key=self.video_key)[-1].findtext("url") |
| 59 | |
| 60 | self.download(target_url) |