Fix facebook extractor
diff --git a/src/you_get/common.py b/src/you_get/common.py
index c14026dcd3..0a8e160c34 100644
--- a/src/you_get/common.py
+++ b/src/you_get/common.py
@@ -900,7 +900,7 @@ def script_main(script_name, download, download_playlist = None):
             sys.exit(1)
 
 def url_to_module(url):
-    from .extractors import netease, w56, acfun, baidu, baomihua, bilibili, blip, catfun, cntv, cbs, coursera, dailymotion, dongting, douban, douyutv, ehow, facebook, freesound, google, sina, ifeng, alive, instagram, iqiyi, joy, jpopsuki, khan, ku6, kugou, kuwo, letv, lizhi, magisto, miomio, mixcloud, mtv81, nicovideo, pptv, qq, sohu, songtaste, soundcloud, ted, theplatform, tudou, tucao, tumblr, vid48, videobam, vimeo, vine, vk, xiami, yinyuetai, youku, youtube, zhanqi
+    from .extractors import netease, w56, acfun, baidu, baomihua, bilibili, blip, catfun, cntv, cbs, coursera, dailymotion, dongting, douban, douyutv, ehow, facebook, freesound, google, sina, ifeng, alive, instagram, iqiyi, joy, jpopsuki, khan, ku6, kugou, kuwo, letv, lizhi, magisto, miomio, mixcloud, mtv81, nicovideo, pptv, qq, sohu, songtaste, soundcloud, ted, theplatform, tudou, tucao, tumblr, vid48, videobam, vidto, vimeo, vine, vk, xiami, yinyuetai, youku, youtube, zhanqi
 
     video_host = r1(r'https?://([^/]+)/', url)
     video_url = r1(r'https?://[^/]+(.*)', url)
@@ -965,6 +965,7 @@ def url_to_module(url):
         'tumblr': tumblr,
         'vid48': vid48,
         'videobam': videobam,
+        'vidto': vidto,
         'vimeo': vimeo,
         'vine': vine,
         'vk': vk,
diff --git a/src/you_get/extractors/facebook.py b/src/you_get/extractors/facebook.py
index edbbb6717f..c0610a175f 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'<title id="pageTitle">(.+) \| Facebook</title>', 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
diff --git a/src/you_get/extractors/vidto.py b/src/you_get/extractors/vidto.py
new file mode 100644
index 0000000000..999c3aa6d9
--- /dev/null
+++ b/src/you_get/extractors/vidto.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python
+
+__all__ = ['vidto_download']
+
+from ..common import *
+import pdb
+import time
+
+
+def vidto_download(url, output_dir='.', merge=True, info_only=False):
+    html = get_content(url)
+    params = {}
+    r = re.findall(
+        r'type="(?:hidden|submit)?"(?:.*?)name="(.+?)"\s* value="?(.+?)">', html)
+    for name, value in r:
+        params[name] = value
+    data = parse.urlencode(params).encode('utf-8')
+    req = request.Request(url)
+    print("Please wait for 6 seconds...")
+    time.sleep(6)
+    print("Starting")
+    new_html = request.urlopen(req, data).read().decode('utf-8', 'replace')
+    new_stff = re.search('lnk_download" href="(.*?)">', new_html)
+    if(new_stff):
+        url = new_stff.group(1)
+        title = params['fname']
+        type = ""
+        ext = ""
+        a, b, size = url_info(url)
+        print_info(site_info, title, type, size)
+        if not info_only:
+            download_urls([url], title, ext, size, output_dir, merge=merge)
+    else:
+        print("cannot find link, please review")
+        pdb.set_trace()
+
+
+site_info = "vidto.me"
+download = vidto_download
+download_playlist = playlist_not_supported('vidto')

Previously would throw error if there is no hd_src
Modified to use json parser and check if hd_src is None

<!-- Reviewable:start -->

[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/soimort/you-get/514)

<!-- Reviewable:end -->
