mirror of https://github.com/yt-dlp/yt-dlp.git
[mtv] Extract duration from each playlist item
RSS used instead of manifest files because it's exact to the millisecond with the video I tested while in manifest it's only exact to the second.
This commit is contained in:
parent
8ec64ac683
commit
8765151c8a
|
@ -11,6 +11,7 @@ from ..utils import (
|
||||||
ExtractorError,
|
ExtractorError,
|
||||||
find_xpath_attr,
|
find_xpath_attr,
|
||||||
fix_xml_ampersands,
|
fix_xml_ampersands,
|
||||||
|
float_or_none,
|
||||||
HEADRequest,
|
HEADRequest,
|
||||||
sanitized_Request,
|
sanitized_Request,
|
||||||
unescapeHTML,
|
unescapeHTML,
|
||||||
|
@ -158,6 +159,9 @@ class MTVServicesInfoExtractor(InfoExtractor):
|
||||||
if mtvn_id_node is not None:
|
if mtvn_id_node is not None:
|
||||||
mtvn_id = mtvn_id_node.text
|
mtvn_id = mtvn_id_node.text
|
||||||
|
|
||||||
|
content_el = find_xpath_attr(itemdoc, self._xpath_ns('.//content', 'http://search.yahoo.com/mrss/'), 'duration')
|
||||||
|
duration = float_or_none(content_el.attrib.get('duration')) if content_el is not None else None
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'title': title,
|
'title': title,
|
||||||
'formats': self._extract_video_formats(mediagen_doc, mtvn_id),
|
'formats': self._extract_video_formats(mediagen_doc, mtvn_id),
|
||||||
|
@ -165,6 +169,7 @@ class MTVServicesInfoExtractor(InfoExtractor):
|
||||||
'id': video_id,
|
'id': video_id,
|
||||||
'thumbnail': self._get_thumbnail_url(uri, itemdoc),
|
'thumbnail': self._get_thumbnail_url(uri, itemdoc),
|
||||||
'description': description,
|
'description': description,
|
||||||
|
'duration': duration,
|
||||||
}
|
}
|
||||||
|
|
||||||
def _get_feed_query(self, uri):
|
def _get_feed_query(self, uri):
|
||||||
|
|
Loading…
Reference in New Issue