From dc65041c224497f46b2984df02c234ce54bdedfd Mon Sep 17 00:00:00 2001 From: Remita Amine Date: Fri, 11 Dec 2020 13:54:03 +0100 Subject: [PATCH] [facebook] add support for watch videos(closes #22795) --- youtube_dl/extractor/facebook.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) 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: