|
|
|
@ -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)
|
|
|
|
|