summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSergey M․ <[email protected]>2015-12-28 21:37:02 +0600
committerSergey M․ <[email protected]>2015-12-28 21:37:02 +0600
commitc1f49e16843bb9bdfdf132a472eb0fc2c6b920e4 (patch)
treeacd05ce5c81434a9aab2f0deeec7ba45576c3fa8
parent9f66931e160ec7c4cc3be8bf731da32b0bfa9043 (diff)
downloadyoutube-dl-c1f49e16843bb9bdfdf132a472eb0fc2c6b920e4.tar.gz
youtube-dl-c1f49e16843bb9bdfdf132a472eb0fc2c6b920e4.zip
[facebook] Fix authentication
-rw-r--r--youtube_dl/extractor/facebook.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/youtube_dl/extractor/facebook.py b/youtube_dl/extractor/facebook.py
index 1692ec1cb..5e43f2359 100644
--- a/youtube_dl/extractor/facebook.py
+++ b/youtube_dl/extractor/facebook.py
@@ -74,7 +74,7 @@ class FacebookIE(InfoExtractor):
return
login_page_req = sanitized_Request(self._LOGIN_URL)
- login_page_req.add_header('Cookie', 'locale=en_US')
+ self._set_cookie('facebook.com', 'locale', 'en_US')
login_page = self._download_webpage(login_page_req, None,
note='Downloading login page',
errnote='Unable to download login page')
@@ -108,10 +108,17 @@ class FacebookIE(InfoExtractor):
self._downloader.report_warning('unable to log in: bad username/password, or exceded login rate limit (~3/min). Check credentials or wait.')
return
+ fb_dtsg = self._search_regex(
+ r'name="fb_dtsg" value="(.+?)"', login_results, 'fb_dtsg', default=None)
+ h = self._search_regex(
+ r'name="h"\s+(?:\w+="[^"]+"\s+)*?value="([^"]+)"', login_results, 'h', default=None)
+
+ if not fb_dtsg or not h:
+ return
+
check_form = {
- 'fb_dtsg': self._search_regex(r'name="fb_dtsg" value="(.+?)"', login_results, 'fb_dtsg'),
- 'h': self._search_regex(
- r'name="h"\s+(?:\w+="[^"]+"\s+)*?value="([^"]+)"', login_results, 'h'),
+ 'fb_dtsg': fb_dtsg,
+ 'h': h,
'name_action_selected': 'dont_save',
}
check_req = sanitized_Request(self._CHECKPOINT_URL, urlencode_postdata(check_form))