diff --git a/src/you_get/extractors/facebook.py b/src/you_get/extractors/facebook.py index edbbb671..c0610a17 100644 --- a/src/you_get/extractors/facebook.py +++ b/src/you_get/extractors/facebook.py @@ -3,22 +3,26 @@ __all__ = ['facebook_download'] from ..common import * +import json -def facebook_download(url, output_dir = '.', merge = True, info_only = False): + +def facebook_download(url, output_dir='.', merge=True, info_only=False): html = get_html(url) - + title = r1(r'(.+) \| Facebook', html) - + s2 = parse.unquote(unicodize(r1(r'\["params","([^"]*)"\]', html))) + data = json.loads(s2) + video_data = data["video_data"][0] for fmt in ["hd_src", "sd_src"]: - src= re.sub(r'\\/', r'/', r1(r'"' + fmt + '":"([^"]*)"', parse.unquote(unicodize(r1(r'\["params","([^"]*)"\]', html))))) + src = video_data[fmt] if src: break - - type, ext, size = url_info(src) - + + type, ext, size = url_info(src, True) + print_info(site_info, title, type, size) if not info_only: - download_urls([src], title, ext, size, output_dir, merge = merge) + download_urls([src], title, ext, size, output_dir, merge=merge) site_info = "Facebook.com" download = facebook_download