[nuevo] Generalize nuevo extractor and add support for trollvids
Supports only the nuevo player for now (most common). [trollvids] convert duration to an int [trollvids] added a test [trollvids] made flake8 shut up Generalized the Nuevo extractor Affects: anitube, trollvids, trutube [nuevo] Complied with the code comments.
This commit is contained in:
parent
4fcd9d147d
commit
d570746e45
5 changed files with 98 additions and 46 deletions
37
youtube_dl/extractor/nuevo.py
Normal file
37
youtube_dl/extractor/nuevo.py
Normal file
|
@ -0,0 +1,37 @@
|
|||
# encoding: utf-8
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from .common import InfoExtractor
|
||||
|
||||
from ..utils import (
|
||||
float_or_none,
|
||||
xpath_text
|
||||
)
|
||||
|
||||
|
||||
class NuevoBaseIE(InfoExtractor):
|
||||
def _extract_nuevo(self, config_url, video_id):
|
||||
tree = self._download_xml(config_url, video_id, transform_source=lambda s: s.strip())
|
||||
|
||||
title = xpath_text(tree, './title')
|
||||
if title:
|
||||
title = title.strip()
|
||||
|
||||
thumbnail = xpath_text(tree, './image')
|
||||
duration = float_or_none(xpath_text(tree, './duration'))
|
||||
|
||||
formats = []
|
||||
for element_name, format_id in (('file', 'sd'), ('filehd', 'hd')):
|
||||
video_url = tree.find(element_name)
|
||||
video_url is None or formats.append({
|
||||
'format_id': format_id,
|
||||
'url': video_url.text
|
||||
})
|
||||
|
||||
return {
|
||||
'id': video_id,
|
||||
'title': title,
|
||||
'thumbnail': thumbnail,
|
||||
'duration': duration,
|
||||
'formats': formats
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue