|
@@ -199,3 +199,33 @@ class FacebookIE(InfoExtractor):
|
|
'formats': formats,
|
|
'formats': formats,
|
|
'uploader': uploader,
|
|
'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)
|