Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import urllib
- import json
- import xchat
- import re
- import sys
- import requests
- __module_name__ = "Get Youtube Video Info"
- __module_version__ = "0.4"
- __module_description__ = "Reads and displays video info from an URL."
- __module_author__ = "demi_alucard <alysson87@gmail.com> updated by _Sam--"
- def get_yt_info(id):
- params = {}
- #params['v'] = '3.0'
- #params['alt'] = 'json'
- #params['safeSearch'] = 'none'
- #params['restriction'] = '255.255.255.255'
- #params['q'] = '"%s"' % id
- params['part'] = 'snippet,id,statistics'
- params['id'] = id
- #params['fields'] = 'entry[media:group/yt:videoid="%s"]' % id
- params['key'] = 'XXXXXXXXXXXXXXXXXXXX'
- params = urllib.urlencode(params)
- #print params
- f = urllib.urlopen('https://www.googleapis.com/youtube/v3/videos?%s' % params)
- data = json.load(f)
- #print data
- #if 'entry' not in data['feed']:
- # return {}
- title = data['items'][0]['snippet']['title']
- views = data['items'][0]['statistics']['viewCount']
- likes = data['items'][0]['statistics']['likeCount']
- dislikes = data['items'][0]['statistics']['dislikeCount']
- #print title
- info = {}
- info['id'] = id
- info['title'] = title
- info['views'] = views
- info['likes'] = likes
- info['dislikes'] = dislikes
- return info
- def show_yt_info(info):
- msg = u"\0033\002::\003 YouTube\002 %s " + \
- u"\0033\002::\003 URL:\002 https://youtu.be/%s " + \
- u"\0033\002::\003 Views:\002 %s " + \
- u"\0033\002:: [+]\002 %s likes " + \
- u"\002\0034[-]\002 %s dislikes " + \
- u"\0033\002::\002"
- msg = (msg) % (info['title'], info['id'], group(info['views']), group(info['likes']), group(info['dislikes']))
- msg = msg.encode('utf-8')
- xchat.command("say " + msg)
- #print(msg)
- def get_id_from_url(text):
- check = re.compile(r"(?:https?\://)?(?:\w+\.)?(?:youtube|youtu)(?:\.\w+){1,2}/")
- normal = re.compile(r"(?:=|%3F)?v(?:=|%3D)([\w\-]+)")
- short = re.compile(r"(?:(?:https?\://)?(?:\w+\.)?(?:youtube|youtu)(?:\.\w+){1,2}/)([\w\-]+)")
- vid = ""
- if check.search(text):
- normal = normal.search(text)
- short = short.search(text)
- if normal != None:
- vid = normal.group(1)
- elif short != None:
- vid = short.group(1)
- return vid
- def group(n):
- return (','.join(re.findall(r"\d{1,3}", str(n)[::-1])))[::-1]
- def privmsg_cb(word, word_eol, userdata):
- id = get_id_from_url(word_eol[3])
- if len(id) == 0:
- return xchat.EAT_NONE
- info = get_yt_info(id)
- if len(info) == 0:
- return xchat.EAT_NONE
- show_yt_info(info)
- return xchat.EAT_NONE
- def ytcmd_cb(word, word_eol, userdata):
- if xchat.get_info("channel") == '#bitcoincash':
- return xchat.EAT_NONE
- if len(word) < 2:
- print "/yt <url> to get video info"
- return xchat.EAT_NONE
- id = get_id_from_url(word_eol[0])
- if len(id) == 0:
- return xchat.EAT_NONE
- info = get_yt_info(id)
- if len(info) == 0:
- return xchat.EAT_NONE
- show_yt_info(info)
- return xchat.EAT_NONE
- for chan in xchat.get_list('channels'):
- if chan.channel == "#bitcoincash":
- print "douchhhhhe"
- xchat.hook_print("Channel Message",ytcmd_cb)
- xchat.hook_command("yt", ytcmd_cb, help="/yt <url> to get video info")
- #xchat.hook_server("PRIVMSG", privmsg_cb)
- print "\0034", __module_name__, __module_version__, "has been loaded\003"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement