diff --git a/docs/services.md b/docs/services.md
index 0838757..a47fb82 100644
--- a/docs/services.md
+++ b/docs/services.md
@@ -20,4 +20,5 @@
- **Oxford**, https://od-api.oxforddictionaries.com/
- **Youdao-English**, [http://dict.youdao.com/...](http://dict.youdao.com/fsearch?client=deskdict&keyfrom=chrome.extension&pos=-1&doctype=xml&xmlVersion=3.2&dogVersion=1.0&vendor=unknown&appVer=3.1.17.4208&le=eng&q=word)
- **Youdao-French**, [http://dict.youdao.com/...](http://dict.youdao.com/fsearch?client=deskdict&keyfrom=chrome.extension&pos=-1&doctype=xml&xmlVersion=3.2&dogVersion=1.0&vendor=unknown&appVer=3.1.17.4208&le=fr&q=word)
+ - **Youdao-Korean**, [http://dict.youdao.com/...](http://dict.youdao.com/fsearch?client=deskdict&keyfrom=chrome.extension&pos=-1&doctype=xml&xmlVersion=3.2&dogVersion=1.0&vendor=unknown&appVer=3.1.17.4208&le=ko&q=대한민국)
- **MDX Server**, You have to run mdx server by yourself first.
diff --git a/src/fastwq/service/youdaoko.py b/src/fastwq/service/youdaoko.py
new file mode 100644
index 0000000..3783499
--- /dev/null
+++ b/src/fastwq/service/youdaoko.py
@@ -0,0 +1,79 @@
+#-*- coding:utf-8 -*-
+import re
+import urllib2
+import xml.etree.ElementTree
+
+from aqt.utils import showInfo
+from .base import WebService, export, register, with_styles
+
+
+@register([u'有道词典-韩语', u'Youdao-Korean'])
+class Youdaoko(WebService):
+
+ def __init__(self):
+ super(Youdaoko, self).__init__()
+
+ def _get_from_api(self, lang='ko'):
+ url = (u'http://dict.youdao.com/fsearch?client=deskdict'
+ '&keyfrom=chrome.extension&pos=-1'
+ '&doctype=xml&xmlVersion=3.2'
+ '&dogVersion=1.0&vendor=unknown'
+ '&appVer=3.1.17.4208'
+ '&le={0}&q={1}').format(lang, self.word)
+ result ={
+ 'phonetic': '',
+ 'explains':'',
+ }
+ try:
+ html = self.get_response(url, timeout=5)
+ # showInfo(str(result))
+ doc = xml.etree.ElementTree.fromstring(html)
+ # fetch explanations
+ explains = '
'.join([node.text for node in doc.findall(
+ ".//custom-translation/translation/content")])
+ result.update({'explains': explains})
+ except:
+ pass
+ return self.cache_this(result)
+
+ @export(u'基本释义', 1)
+ def fld_explains(self):
+ return self.cache_result('explains') if self.cached('explains') else \
+ self._get_from_api().get('explains', '')
+
+ @with_styles(cssfile='_youdao.css', need_wrap_css=True, wrap_class='youdao')
+ def _get_singledict(self, single_dict, lang='ko'):
+ url = u"http://m.youdao.com/singledict?q={0}&dict={1}&le={2}&more=false".format(
+ self.word, single_dict, lang
+ )
+ try:
+ html = urllib2.urlopen(url, timeout=5).read()
+ return (u'