def search(self, search_terms, location=None, max_results=MAX_RESULTS_PER_QUERY, max_age=None, orderby= 'published', max_comment_count=0): """ Searches for youtube videos. @param search_terms: list of search terms @param location: tuple latitude, longitue, e.g. 37.42307,-122.08427 @param max_results: @param max_age: datetime of the oldest entry @param orderby: order search results by (relevance, published, viewCount, rating) @param max_comment_count: maximum number of comments to fetch (default: 0) """ if not (isinstance(search_terms, list) or isinstance(search_terms, tuple) or isinstance(search_terms, set)): raise ValueError("Warning search requires a list of search terms, \ rather than a single term") # all youtube search parameter are here: # https://developers.google.com/youtube/2.0/reference?hl=de#Custom_parameters query = YouTubeVideoQuery() query.vq = ', '.join(search_terms) query.orderby = orderby query.racy = 'include' query.time = self.get_query_time(max_age) query.max_results = MAX_RESULTS_PER_QUERY if location: query.location = location return self.search_youtube(query, max_results, max_comment_count)
def _get_youtube_details( self ): """ This method queries the youtube API for details on the specified video """ yt_service = YouTubeService() query = YouTubeVideoQuery() query.vq = self.search query.racy = 'include' query.orderby = 'relevance' feed = yt_service.YouTubeQuery( query ) print feed.entry[0] if len( feed.entry ) > 0: return { 'id': feed.entry[0].id.text.split('/')[-1], 'url': feed.entry[0].GetSwfUrl(), 'title': feed.entry[0].media.title.text, 'length': feed.entry[0].media.duration.seconds } else: return None
def search(self, artist): query = YouTubeVideoQuery() query.vq = artist query.orderby = 'relevance' query.racy = 'exclude' query.format = '5' query.max_results = 50 query.categories.append("/Music") feed = self.service.YouTubeQuery(query) results = [] for entry in feed.entry: if not self.is_valid_entry(artist, entry): continue results.append({ 'url': entry.media.player.url, 'title': smart_str(entry.media.title.text), 'duration': int(entry.media.duration.seconds), }) return {'artist': artist, 'results': results}
def search(self, search_terms, location=None, max_results=MAX_RESULTS_PER_QUERY, max_age=None, orderby='published', max_comment_count=0): """ Searches for youtube videos. @param search_terms: list of search terms @param location: tuple latitude, longitue, e.g. 37.42307,-122.08427 @param max_results: @param max_age: datetime of the oldest entry @param orderby: order search results by (relevance, published, viewCount, rating) @param max_comment_count: maximum number of comments to fetch (default: 0) """ if not (isinstance(search_terms, list) or isinstance( search_terms, tuple) or isinstance(search_terms, set)): raise ValueError("Warning search requires a list of search terms, \ rather than a single term") # all youtube search parameter are here: # https://developers.google.com/youtube/2.0/reference?hl=de#Custom_parameters query = YouTubeVideoQuery() query.vq = ', '.join(search_terms) query.orderby = orderby query.racy = 'include' query.time = self.get_query_time(max_age) query.max_results = MAX_RESULTS_PER_QUERY if location: query.location = location return self.search_youtube(query, max_results, max_comment_count)