Browse Source

[nosvideo] Make more robust against missing metadata

totalwebcasting
Naglis Jonaitis 10 years ago
parent
commit
d0e8b3d59b
1 changed files with 10 additions and 4 deletions
  1. +10
    -4
      youtube_dl/extractor/nosvideo.py

+ 10
- 4
youtube_dl/extractor/nosvideo.py View File

@ -8,11 +8,11 @@ from ..utils import (
ExtractorError, ExtractorError,
compat_urllib_request, compat_urllib_request,
urlencode_postdata, urlencode_postdata,
xpath_text,
xpath_with_ns, xpath_with_ns,
) )
_x = lambda p: xpath_with_ns(p, {'xspf': 'http://xspf.org/ns/0/'}) _x = lambda p: xpath_with_ns(p, {'xspf': 'http://xspf.org/ns/0/'})
_find = lambda el, p: el.find(_x(p)).text.strip()
class NosVideoIE(InfoExtractor): class NosVideoIE(InfoExtractor):
@ -53,9 +53,15 @@ class NosVideoIE(InfoExtractor):
playlist = self._download_xml(playlist_url, video_id) playlist = self._download_xml(playlist_url, video_id)
track = playlist.find(_x('.//xspf:track')) track = playlist.find(_x('.//xspf:track'))
title = _find(track, './xspf:title')
url = _find(track, './xspf:file')
thumbnail = _find(track, './xspf:image')
if track is None:
raise ExtractorError(
'XML playlist is missing the \'track\' element',
expected=True)
title = xpath_text(track, _x('./xspf:title'), 'title')
url = xpath_text(track, _x('./xspf:file'), 'URL', fatal=True)
thumbnail = xpath_text(track, _x('./xspf:image'), 'thumbnail')
if title is not None:
title = title.strip()
formats = [{ formats = [{
'format_id': 'sd', 'format_id': 'sd',


Loading…
Cancel
Save