def get_tmdb_details_data(tmdb_api_key, tmdb_id): response = tools.retrieve_web_page('https://api.themoviedb.org/3/movie/' + str(tmdb_id) + '?api_key=' + tmdb_api_key + '&language=en-US', 'movie details') data = json.loads(response.read().decode('utf-8')) response.close() return data
def get_tmdb_search_data(self, tmdb_api_key): response = tools.retrieve_web_page('https://api.themoviedb.org/3/search/movie' '?api_key=' + tmdb_api_key + '&language=en-US&query=' + self.movie_title.replace(' ', '+') + '&page=1&include_adult=false', 'tmdb movie search page') data = json.loads(response.read().decode('utf-8')) response.close() return data
def youtube_search(): for search in self.config.youtube_searches: query = apply_query_template(search['template']).replace(' ', '+') limit = search['limit'] count = 0 while True: try: response = tools.retrieve_web_page('https://www.youtube.com/results?search_query=' + query, 'youtube search result') except UnicodeEncodeError: print('youtube search query was faulty') self.complete = False return except ValueError: print('youtube search query was faulty') self.complete = False return except URLError as e: print('Failed to download youtube search result. Reason: ' + str(e)) if ExtraFinder.conn_errors > 2: self.complete = False raise else: ExtraFinder.conn_errors += 1 else: break soup = BeautifulSoup(response, "html.parser") item_list = soup.findAll(attrs={'class': 'yt-uix-tile-link'}) for item in item_list: if count >= limit: break count += 1 url = 'https://www.youtube.com' + item['href'] print('Loading info for: "' + url + '".') if not any(url in youtube_video.url or youtube_video.url in url for youtube_video in self.youtube_videos): youtube_video = YoutubeVideo(url) self.youtube_videos.append(youtube_video) youtube_video.search_source = 'youtube' if youtube_video.is_play_trailer: self.play_trailers.append(youtube_video) else: for youtube_video in self.youtube_videos: if url in youtube_video.url or youtube_video.url in url: youtube_video.search_source += ', youtube'