From 677b0fc48a8ba008a1cf9f7ff0ca90d1b779c8db Mon Sep 17 00:00:00 2001 From: Andrew Udvare Date: Sun, 30 Sep 2018 03:53:29 -0400 Subject: [PATCH] [SnapchatMap] Add new extractor --- youtube_dl/extractor/extractors.py | 2 +- youtube_dl/extractor/snapchat.py | 23 +++++++++++++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py index 5c6f1c802..82bec5bc9 100644 --- a/youtube_dl/extractor/extractors.py +++ b/youtube_dl/extractor/extractors.py @@ -1011,7 +1011,7 @@ from .smotri import ( SmotriUserIE, SmotriBroadcastIE, ) -from .snapchat import SnapchatStoryIE +from .snapchat import SnapchatMapIE, SnapchatStoryIE from .snotr import SnotrIE from .sohu import SohuIE from .sonyliv import SonyLIVIE diff --git a/youtube_dl/extractor/snapchat.py b/youtube_dl/extractor/snapchat.py index eac32e68f..b4c73e5a4 100644 --- a/youtube_dl/extractor/snapchat.py +++ b/youtube_dl/extractor/snapchat.py @@ -2,8 +2,8 @@ from __future__ import unicode_literals from .common import InfoExtractor -from ..compat import compat_str, compat_urllib_parse_urlencode -from ..utils import ExtractorError, int_or_none, try_get +from ..compat import compat_str +from ..utils import int_or_none, try_get class SnapchatStoryIE(InfoExtractor): @@ -77,3 +77,22 @@ class SnapchatStoryIE(InfoExtractor): playlist_title=title, playlist_id=snap_id, playlist_description=alt_title) + + +class SnapchatMapIE(InfoExtractor): + _VALID_URL = r'https?://map\.snapchat\.com/(?:story|ttp)/[0-9a-f]+/snap/(?P[^/?#&]+)' + _TEST = { + 'url': 'https://map.snapchat.com/story/1e8e6ce5c27f8623/snap/q4_OINadScux6p1c6OgxRwAAEs-Al6eIEtvT_AWYnxYFbAWYnxX26AAFRgA/@40.811408,-77.855252,13.00z', + 'md5': '966330c423dcf7d49fa9077c46bbb86d', + 'info_dict': { + 'id': 'q4_OINadScux6p1c6OgxRwAAEs-Al6eIEtvT_AWYnxYFbAWYnxX26AAFRgA', + 'title': 'State College, Pennsylvania', + 'ext': 'mp4', + 'thumbnail': 'https://s.sc-cdn.net/DScgzJV_rSLcJUubC03fcZECpi8KARIFRVtq5rEav2M=/default/preview_overlay.jpg', + }, + } + + def _real_extract(self, url): + snap_id = self._match_id(url) + return self.url_result('https://story.snapchat.com/s/m:%s' % snap_id, + ie=SnapchatStoryIE.ie_key())