def SearchBA_old(self): url = 'https://www.googleapis.com/youtube/v3/search?part=id,snippet&q=%s&maxResults=1&relevanceLanguage=fr&key=%s' % ( self.search, self.key) oRequestHandler = cRequestHandler(url) sHtmlContent = oRequestHandler.request(jsonDecode=True) try: ids = result['items'][0]['id']['videoId'] url = 'http://www.youtube.com/watch?v=%s' % ids hote = cHoster() hote.setUrl(url) api_call = hote.getMediaLink()[1] if not api_call: return oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setTitle(self.search.replace('+', ' ')) oGuiElement.setMediaUrl(api_call) oGuiElement.setThumbnail(oGuiElement.getIcon()) oPlayer = cPlayer() oPlayer.clearPlayList() oPlayer.addItemToPlaylist(oGuiElement) oPlayer.startPlayer() except: dialog().VSinfo(addon().VSlang(30204)) return return
def SearchBA(self): self.url = 'https://www.youtube.com/results?q=' + self.search + '&sp=EgIYAQ%253D%253D' oRequestHandler = cRequestHandler(self.url) sHtmlContent = oRequestHandler.request() list = re.findall('"url":"\/watch\?v=([^"]+)"', sHtmlContent) if list: url = 'http://www.youtube.com/watch?v=' + list[0] exec 'from resources.hosters.youtube import cHoster' hote = cHoster() hote.setUrl(url) api_call = hote.getMediaLink()[1] if not api_call: return oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setTitle(self.search.replace('+', ' ')) oGuiElement.setMediaUrl(api_call) oGuiElement.setThumbnail(oGuiElement.getIcon()) oPlayer = cPlayer() oPlayer.clearPlayList() oPlayer.addItemToPlaylist(oGuiElement) oPlayer.startPlayer() return
def __init__(self): message = "Add-on: TvWatch2\n" message += "Repo: http://tvwatch2.000webhostapp.com/\n" message += "\n" message += "Afficher la procédure d'installation ?\n" if dialog().VSyesno( message, "Une nouvelle version de Tvwatch est disponible !"): url = 'https://www.youtube.com/watch?v=614nwd3J_x0' from resources.hosters.youtube import cHoster hote = cHoster() hote.setUrl(url) api_call = hote.getMediaLink()[1] if not api_call: return oGuiElement = cGuiElement() oGuiElement.setSiteName('youtube') oGuiElement.setTitle("Procédure d'installation TvWatch2") oGuiElement.setMediaUrl(api_call) oGuiElement.setThumbnail(oGuiElement.getIcon()) oPlayer = cPlayer() oPlayer.clearPlayList() oPlayer.addItemToPlaylist(oGuiElement) oPlayer.startPlayer() return
def SearchBA_old(self): self.url = 'https://www.youtube.com/results?q=' + self.search + '&sp=EgIYAQ%253D%253D' oRequestHandler = cRequestHandler(self.url) sHtmlContent = oRequestHandler.request() list = re.findall('<a href="\/watch\?v=([^"<>]+)" class=',sHtmlContent) if list: url = 'http://www.youtube.com/watch?v=' + list[0] exec "from resources.hosters.youtube import cHoster" hote = cHoster() hote.setUrl(url) api_call = hote.getMediaLink()[1] if not api_call: return oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setTitle(self.search.replace('+',' ')) oGuiElement.setMediaUrl(api_call) oGuiElement.setThumbnail(oGuiElement.getIcon()) oPlayer = cPlayer() oPlayer.clearPlayList() oPlayer.addItemToPlaylist(oGuiElement) oPlayer.startPlayer() return
def SearchBA(self, window=False): sTitle = self.search + ' - Bande Annonce' # Le lien sur la BA est déjà connu urlTrailer = self.sTrailerUrl # Sinon recherche de la BA officielle dans TMDB if not urlTrailer: meta = cTMDb().get_meta(self.metaType, self.search, year=self.year) if 'trailer' in meta and meta['trailer']: self.SetTrailerUrl(meta['trailer']) urlTrailer = self.sTrailerUrl # Sinon recherche dans youtube if not urlTrailer: urlTrailer2 = 'https://www.youtube.com/results?q=' + QuotePlus( sTitle) + '&sp=EgIYAQ%253D%253D' oRequestHandler = cRequestHandler(urlTrailer2) sHtmlContent = oRequestHandler.request() listResult = re.findall('"url":"\/watch\?v=([^"]+)"', sHtmlContent) if listResult: # Premiere video trouvée urlTrailer = 'http://www.youtube.com/watch?v=' + listResult[0] # BA trouvée if urlTrailer: hote = cHoster() hote.setUrl(urlTrailer) hote.setResolution('720p') api_call = hote.getMediaLink()[1] if not api_call: return oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setTitle(sTitle) oGuiElement.setMediaUrl(api_call) oGuiElement.setThumbnail(oGuiElement.getIcon()) oPlayer = cPlayer() oPlayer.clearPlayList() oPlayer.addItemToPlaylist(oGuiElement) oPlayer.startPlayer(window) return
def SearchBA_old(self): url = 'https://www.googleapis.com/youtube/v3/search?part=id,snippet&q=%s&maxResults=1&relevanceLanguage=fr&key=%s' % ( self.search, self.key) req = urllib2.Request(url) try: gcontext = ssl.SSLContext(ssl.PROTOCOL_TLSv1) response = urllib2.urlopen(req, context=gcontext) except: response = urllib2.urlopen(req) sHtmlContent = response.read() result = json.loads(sHtmlContent) response.close() try: ids = result['items'][0]['id']['videoId'] url = 'http://www.youtube.com/watch?v=%s' % ids from resources.hosters.youtube import cHoster hote = cHoster() hote.setUrl(url) api_call = hote.getMediaLink()[1] if not api_call: return oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setTitle(self.search.replace('+', ' ')) oGuiElement.setMediaUrl(api_call) oGuiElement.setThumbnail(oGuiElement.getIcon()) oPlayer = cPlayer() oPlayer.clearPlayList() oPlayer.addItemToPlaylist(oGuiElement) oPlayer.startPlayer() except: dialog().VSinfo(addon().VSlang(30204)) return return
def SearchBA(self): url = "https://www.googleapis.com/youtube/v3/search?part=id,snippet&q=%s&maxResults=1&relevanceLanguage=fr&key=%s" % (self.search, self.key) req = urllib2.Request(url) try: gcontext = ssl.SSLContext(ssl.PROTOCOL_TLSv1) response = urllib2.urlopen(req,context=gcontext) except: response = urllib2.urlopen(req) sHtmlContent = response.read() result = json.loads(sHtmlContent) response.close() try: ids = result['items'][0]['id']['videoId'] url = 'http://www.youtube.com/watch?v=%s' % ids from resources.hosters.youtube import cHoster hote = cHoster() hote.setUrl(url) api_call = hote.getMediaLink()[1] if not api_call: return oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setTitle(self.search.replace('+',' ')) oGuiElement.setMediaUrl(api_call) oGuiElement.setThumbnail(oGuiElement.getIcon()) oPlayer = cPlayer() oPlayer.clearPlayList() oPlayer.addItemToPlaylist(oGuiElement) oPlayer.startPlayer() except: dialog().VSinfo(addon().VSlang(30204)) return return
def SearchBA(self): url = "https://www.googleapis.com/youtube/v3/search?part=id,snippet&q=%s&maxResults=1&relevanceLanguage=fr&key=%s" % ( self.search, self.key) req = urllib2.Request(url) response = urllib2.urlopen(req) sHtmlContent = response.read() result = json.loads(sHtmlContent) response.close() try: ids = result['items'][0]['id']['videoId'] url = 'http://www.youtube.com/watch?v=%s' % ids from resources.hosters.youtube import cHoster hote = cHoster() hote.setUrl(url) api_call = hote.getMediaLink()[1] if not api_call: return oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setTitle(self.search.replace('+', ' ')) oGuiElement.setMediaUrl(api_call) oGuiElement.setThumbnail(oGuiElement.getIcon()) oPlayer = cPlayer() oPlayer.clearPlayList() oPlayer.addItemToPlaylist(oGuiElement) oPlayer.startPlayer() except Exception, e: util.VSshowInfo('TvWatch', util.VSlang(30204)) util.VSlog("SearchBA ERROR " + e.message) return
def SearchBA(self, window=False): sTitle = self.search + ' - Bande Annonce' # Le lien sur la BA est déjà connu urlTrailer = self.sTrailerUrl # Sinon recherche de la BA officielle dans TMDB if not urlTrailer: meta = cTMDb().get_meta(self.metaType, self.search, year=self.year) if 'trailer' in meta and meta['trailer']: self.SetTrailerUrl(meta['trailer']) urlTrailer = self.sTrailerUrl # Sinon recherche dans youtube if not urlTrailer: headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36' } url = 'https://www.youtube.com/results' sHtmlContent = requests.get( url, params={ 'search_query': sTitle }, cookies={ 'CONSENT': GestionCookie().Readcookie("youtube") }, headers=headers).text try: result = re.search( '"contents":\[{"videoRenderer":{"videoId":"([^"]+)', str(sHtmlContent)).group(1) except: result = re.search( '"contents":\[{"videoRenderer":{"videoId":"([^"]+)', sHtmlContent.encode('utf-8')).group(1) if result: # Premiere video trouvée urlTrailer = 'https://www.youtube.com/watch?v=' + result # BA trouvée if urlTrailer: hote = cHoster() hote.setUrl(urlTrailer) hote.setResolution('720p') api_call = hote.getMediaLink()[1] if not api_call: return oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setTitle(sTitle) oGuiElement.setMediaUrl(api_call) oGuiElement.setThumbnail(oGuiElement.getIcon()) oPlayer = cPlayer() oPlayer.clearPlayList() oPlayer.addItemToPlaylist(oGuiElement) oPlayer.startPlayer(window) return
def SearchBA(self, window=False): sTitle = self.search + ' - Bande Annonce' # Le lien sur la BA est déjà connu urlTrailer = self.sTrailerUrl # Sinon recherche de la BA officielle dans TMDB if not urlTrailer: meta = cTMDb().get_meta(self.metaType, self.search, year=self.year) if 'trailer' in meta and meta['trailer']: self.SetTrailerUrl(meta['trailer']) urlTrailer = self.sTrailerUrl # Sinon recherche dans youtube if not urlTrailer: headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36' } url = 'https://www.youtube.com/results' sHtmlContent = requests.get( url, params={ 'search_query': sTitle }, cookies={ 'CONSENT': GestionCookie().Readcookie("youtube") }, headers=headers).text if "Proposer des services et s'assurer" in sHtmlContent: data = re.search('<form action=(.+?)Accepter', sHtmlContent).group(1) post_data = re.findall( '<input type="hidden" name="(.+?)" value="(.+?)"', data) d = {} for data in post_data: d.update({data[0]: data[1]}) cook = requests.post("https://consent.youtube.com/s", params=d, headers=headers, allow_redirects=False).cookies GestionCookie().SaveCookie('youtube', str(dict(cook)["CONSENT"])) sHtmlContent = requests.get(url, params={ 'search_query': sTitle }, cookies={ 'CONSENT': str(dict(cook)["CONSENT"]) }, headers=headers).text try: result = re.search( '"contents":\[{"videoRenderer":{"videoId":"([^"]+)', str(sHtmlContent)).group(1) except: result = re.search( '"contents":\[{"videoRenderer":{"videoId":"([^"]+)', sHtmlContent.encode('utf-8')).group(1) if result: # Premiere video trouvée urlTrailer = 'https://www.youtube.com/watch?v=' + result # BA trouvée if urlTrailer: hote = cHoster() hote.setUrl(urlTrailer) hote.setResolution('720p') api_call = hote.getMediaLink()[1] if not api_call: return oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setTitle(sTitle) oGuiElement.setMediaUrl(api_call) oGuiElement.setThumbnail(oGuiElement.getIcon()) oPlayer = cPlayer() oPlayer.clearPlayList() oPlayer.addItemToPlaylist(oGuiElement) oPlayer.startPlayer(window) return