diff options
| -rw-r--r-- | youtube_dl/extractor/patreon.py | 19 | 
1 files changed, 12 insertions, 7 deletions
| diff --git a/youtube_dl/extractor/patreon.py b/youtube_dl/extractor/patreon.py index 6f73ed68d..426dd8121 100644 --- a/youtube_dl/extractor/patreon.py +++ b/youtube_dl/extractor/patreon.py @@ -104,16 +104,18 @@ class PatreonIE(InfoExtractor):              'comment_count': int_or_none(attributes.get('comment_count')),          } +        def add_file(file_data): +            file_url = file_data.get('url') +            if file_url: +                info.update({ +                    'url': file_url, +                    'ext': determine_ext(file_data.get('name'), 'mp3'), +                }) +          for i in post.get('included', []):              i_type = i.get('type')              if i_type == 'attachment': -                attachment_attributes = i.get('attributes') or {} -                attachment_url = attachment_attributes.get('url') -                if attachment_url: -                    info.update({ -                        'url': attachment_url, -                        'ext': determine_ext(attachment_attributes.get('name'), 'mp3'), -                    }) +                add_file(i.get('attributes') or {})              elif i_type == 'user':                  user_attributes = i.get('attributes')                  if user_attributes: @@ -123,6 +125,9 @@ class PatreonIE(InfoExtractor):                      })          if not info.get('url'): +            add_file(attributes.get('post_file') or {}) + +        if not info.get('url'):              info.update({                  '_type': 'url',                  'url': attributes['embed']['url'], | 
