示例#1
0
文件: __init__.py 项目: k3njiy/ewrt
    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)
示例#2
0
 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
示例#3
0
 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}
示例#4
0
文件: youtube.py 项目: 6/GeoDJ
 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}
示例#5
0
    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)