aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRemita Amine <remitamine@gmail.com>2020-12-11 13:54:03 +0100
committerRemita Amine <remitamine@gmail.com>2020-12-11 13:54:22 +0100
commitdc65041c224497f46b2984df02c234ce54bdedfd (patch)
treeb7b39d8c1b5c09faf62f63224a92fba2335e64b1
parent9f88b079453b0b74efd494a7ddfda40a43055852 (diff)
downloadyoutube-dl-dc65041c224497f46b2984df02c234ce54bdedfd.tar.xz
[facebook] add support for watch videos(closes #22795)
-rw-r--r--youtube_dl/extractor/facebook.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/youtube_dl/extractor/facebook.py b/youtube_dl/extractor/facebook.py
index 6c360e29e..374b82704 100644
--- a/youtube_dl/extractor/facebook.py
+++ b/youtube_dl/extractor/facebook.py
@@ -41,7 +41,8 @@ class FacebookIE(InfoExtractor):
photo\.php|
video\.php|
video/embed|
- story\.php
+ story\.php|
+ watch/?
)\?(?:.*?)(?:v|video_id|story_fbid)=|
[^/]+/videos/(?:[^/]+/)?|
[^/]+/posts/|
@@ -239,6 +240,20 @@ class FacebookIE(InfoExtractor):
'id': '106560053808006',
},
'playlist_count': 2,
+ }, {
+ # data.video_home_www_feed.video_home_sections.edges[].node.feed_section_renderer.section.section_components.edges[].node.feed_unit.attachments
+ 'url': 'https://www.facebook.com/watch/?v=125475412191640',
+ 'md5': 'a38bed45dd1b2881ea230f3561c914b7',
+ 'info_dict': {
+ 'id': '373249263226147',
+ 'ext': 'mp4',
+ 'title': 'شوف بعينيك ماذا يحدث...ماناش نخوف فيكم رانا ننقل لكم مايحدث...',
+ 'description': 'شوف بعينيك ماذا يحدث خويا العزيز...ماناش نخوف فيكم رانا ننقل لكم مايحدث...\nتذكروا جيدا ماكنا نقوله لكم منذ سنوات وماكنا نحذركم .',
+ 'timestamp': 1550353963,
+ 'upload_date': '20190216',
+ 'uploader_id': '176917942440142',
+ },
+ 'skip': 'Requires logging in',
}]
@staticmethod
@@ -425,6 +440,14 @@ class FacebookIE(InfoExtractor):
for edge in edges:
parse_attachment(edge, key='node')
+ video_home_sections = try_get(data, lambda x: x['video_home_www_feed']['video_home_sections']['edges'], list) or []
+ for video_home_section in video_home_sections:
+ section_components = try_get(video_home_section, lambda x: x['node']['feed_section_renderer']['section']['section_components']['edges'], list) or []
+ for section_component in section_components:
+ attachments = try_get(section_component, lambda x: x['node']['feed_unit']['attachments'], list) or []
+ for attachment in attachments:
+ parse_attachment(attachment)
+
if not entries:
video = data.get('video') or {}
if video: