diff options
| author | Sergey M․ <dstftw@gmail.com> | 2016-01-25 22:18:34 +0600 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2016-01-25 22:18:34 +0600 | 
| commit | de691a498dd334ee5f8d237a4fc7ced314d86f44 (patch) | |
| tree | 03f3417ff5a45af5a5dd382ea0514ef726571a98 | |
| parent | 2e6e742c3cda5ed4846bff4ef894aac21434e3d4 (diff) | |
[facebook:post] Add extractor (Closes #8321)
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 5 | ||||
| -rw-r--r-- | youtube_dl/extractor/facebook.py | 30 | 
2 files changed, 34 insertions, 1 deletions
| diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 245e4d044..532be7e4c 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -196,7 +196,10 @@ from .everyonesmixtape import EveryonesMixtapeIE  from .exfm import ExfmIE  from .expotv import ExpoTVIE  from .extremetube import ExtremeTubeIE -from .facebook import FacebookIE +from .facebook import ( +    FacebookIE, +    FacebookPostIE, +)  from .faz import FazIE  from .fc2 import FC2IE  from .fczenit import FczenitIE diff --git a/youtube_dl/extractor/facebook.py b/youtube_dl/extractor/facebook.py index f9fd8ed4e..cb5dd57fb 100644 --- a/youtube_dl/extractor/facebook.py +++ b/youtube_dl/extractor/facebook.py @@ -199,3 +199,33 @@ class FacebookIE(InfoExtractor):              'formats': formats,              'uploader': uploader,          } + + +class FacebookPostIE(InfoExtractor): +    IE_NAME = 'facebook:post' +    _VALID_URL = r'https?://(?:\w+\.)?facebook\.com/[^/]+/posts/(?P<id>\d+)' +    _TEST = { +        'url': 'https://www.facebook.com/maxlayn/posts/10153807558977570', +        'md5': '037b1fa7f3c2d02b7a0d7bc16031ecc6', +        'info_dict': { +            'id': '544765982287235', +            'ext': 'mp4', +            'title': '"What are you doing running in the snow?"', +            'uploader': 'FailArmy', +        } +    } + +    def _real_extract(self, url): +        post_id = self._match_id(url) + +        webpage = self._download_webpage(url, post_id) + +        entries = [ +            self.url_result('facebook:%s' % video_id, FacebookIE.ie_key()) +            for video_id in self._parse_json( +                self._search_regex( +                    r'(["\'])video_ids\1\s*:\s*(?P<ids>\[.+?\])', +                    webpage, 'video ids', group='ids'), +                post_id)] + +        return self.playlist_result(entries, post_id) | 
