dickserv

- irc bot with many useful commands
git clone git://git.acid.vegas/dickserv.git
Log | Files | Refs | Archive | README | LICENSE

youtube.py (1438B)

      1 #!/usr/bin/env python
      2 # DickServ IRC Bot - Developed by acidvegas in Python (https://acid.vegas/dickserv)
      3 # youtube.py
      4 
      5 import re
      6 
      7 import config
      8 import httplib
      9 
     10 def check(url):
     11 	found = re.match('^.*?youtu(be)?\.([a-z])+\/(watch(.*?)(\?|\&)v=)?(.*?)(&(.)*)*$', url, re.IGNORECASE)
     12 	if found:
     13 		return found.group(6)
     14 	else:
     15 		return False
     16 
     17 def video_info(id):
     18 	api = httplib.get_json(f'https://www.googleapis.com/youtube/v3/videos?key={config.api.google_api_key}&part=snippet,statistics&id={id}')
     19 	if api['items']:
     20 		api                 = api['items'][0]
     21 		data                = {}
     22 		data['channel']     = api['snippet']['channelTitle']
     23 		data['description'] = ' '.join(api['snippet']['description'].split())
     24 		data['dislikes']    = api['statistics']['dislikeCount']
     25 		data['likes']       = api['statistics']['likeCount']
     26 		data['title']       = api['snippet']['title']
     27 		data['views']       = api['statistics']['viewCount']
     28 		return data
     29 	else:
     30 		return False
     31 
     32 def search(query, results):
     33 	url	    = 'https://www.googleapis.com/youtube/v3/search?part=snippet&key={0}&q={1}&maxResults={2}&type=video&regionCode=US&relevanceLanguage=en&safeSearch=none'.format(config.api.google_api_key, httplib.data_quote(query), results)
     34 	api     = httplib.get_json(url)
     35 	results = {}
     36 	for item in api['items']:
     37 		title = item['snippet']['title']
     38 		url   = 'https://www.youtube.com/watch?v=' + item['id']['videoId']
     39 		results[title] = url
     40 	return results