diff --git a/oxweb/youtube.py b/oxweb/youtube.py
index 449a607..2b3d602 100644
--- a/oxweb/youtube.py
+++ b/oxweb/youtube.py
@@ -2,10 +2,11 @@
# vi:si:et:sw=4:sts=4:ts=4
from urllib import quote
import xml.etree.ElementTree as ET
+import re
import feedparser
-from oxlib.cache import getUrl
-from oxlib import findString
+from oxlib.cache import getUrl, getUrlUnicode
+from oxlib import findString, findRe
def getVideoUrl(youtubeId, format='mp4'):
@@ -26,6 +27,7 @@ def getMovieInfo(youtubeId):
fd = feedparser.parse(data)
return getInfoFromAtom(fd.entries[0])
+'''
def getInfoFromAtom(entry):
info = dict()
info['title'] = entry['title']
@@ -38,7 +40,7 @@ def getInfoFromAtom(entry):
info['thumbnail'] = "http://img.youtube.com/vi/%s/0.jpg" % info['id']
info['flv'] = getVideoUrl(info['id'], 'flv')
info['mp4'] = getVideoUrl(info['id'], 'mp4')
- info['embed'] = '''''' % (info['id'], info['id'])
+ info['embed'] = '' % (info['id'], info['id'])
return info
def find(query, max_results=10, offset=1, orderBy='relevance'):
@@ -53,4 +55,32 @@ def find(query, max_results=10, offset=1, orderBy='relevance'):
if len(videos) >= max_results:
return videos
return videos
+'''
+
+def find(query, max_results=10, offset=1, orderBy='relevance', video_url_base=None):
+ url = "http://youtube.com/results?search_query=%s&search=Search" % quote(query)
+ data = getUrlUnicode(url)
+ regx = re.compile(''' ''')
+ id_title = regx.findall(data)
+ data_flat = data.replace('\n', ' ')
+ videos = {}
+ for video in id_title:
+ vid = video[0]
+ if vid not in videos:
+ v = dict()
+ v['id'] = vid
+ v['link'] = "http//youtube.com/watch.v=%s" % v['id']
+ v['title'] = video[2].strip()
+ if video_url_base:
+ v['video_link'] = "%s/%s" % (video_url_base, v['id'])
+ else:
+ v['video_url'] = get_video_url(v['id'])
+ v['description'] = findRe(data, 'BeginvidDesc%s">(.*?)' % v['id']).strip().replace('', ' ').replace('', '')
+ v['thumbnail'] = video[1]
+ videos[vid] = v
+ if len(videos) >= max_results:
+ return videos.values()
+ return videos.values()
+