def search(self, searchParams, _max, skip):
    self.videos = []
    url = QUrl("http://gdata.youtube.com/feeds/api/videos")
    url.addQueryItem("max-results", unicode(_max))
    url.addQueryItem("start-index", unicode(skip))
    if searchParams.keywords():
      url.addQueryItem("q", searchParams.keywords())
    if searchParams.author() :
      url.addQueryItem("author", searchParams.author())
      
    self.search_keywords = searchParams.keywords()
    print "keywords: " + str(self.search_keywords)

    sort = searchParams.availableSorts[searchParams.sortBy()]
    url.addQueryItem(sort[0], sort[1])
    
    plugin = MATCHER.match(str(url.toString()))
    if plugin is not None:
      self.videos = list(plugin)
   
    return self.videos
Example #2
0
 def getThumbnail(self, url):
     try:
         return MATCHER.urlreader(url).content
     except ReaderError:
         print "Error while getting the thumbnail"
def run():
    """Main function"""
    try:
        parser = OptionParser(usage="usage: %prog [options] URL", version=c.VERSION)
        parser.add_option(
            "-d", "--download", action="store_true", dest="down", default=False, help="download the video"
        )
        parser.add_option(
            "-L",
            "--list-plugins",
            action="store_true",
            dest="list_plugins",
            default=False,
            help="list plugins used and exit",
        )
        parser.add_option("-p", "--player", dest="player", default=False, help="use your favourite player")
        parser.add_option("-o", "--output", dest="output", default=False, help="save video to a certain location")
        parser.add_option(
            "-q",
            "--quality",
            dest="quality",
            default="all",
            help="list all, lowest or highest " "quality video formats",
        )
        (options, args) = parser.parse_args()
        # Validate player option
        if not options.player:
            options.player = None
        elif is_command(options.player):
            options.player = options.player
        else:
            options.player = None
            print (" *ERROR* " + '"' + str(options.player) + '"' + " is NOT a valid player! Using default player...\n")
        # Validate quality option.
        chosen_quality = None
        for quality in ("all", "lowest", "highest"):
            if quality.startswith(options.quality):
                if chosen_quality is None:
                    chosen_quality = quality
                else:
                    parser.error("ambiguous quality setting")
        if chosen_quality is not None:
            options.quality = chosen_quality
        else:
            parser.error("unknown quality chosen")
        if options.list_plugins:
            print "Installed plugins:"
            print ", ".join(plugin for plugin in MATCHER.plugins.iterkeys())
            print ""
            print "Disabled plugins:"
            for plugin, reasons in MATCHER.disabled.iteritems():
                print plugin
                print "\n".join("\t" + reason for reason in reasons)
        else:
            valid_videos = []
            for url in args:
                plugin = MATCHER.match(url)
                if plugin is not None:
                    for medium in plugin:
                        valid_videos.append(medium)

            if not valid_videos:
                print "No valid links found."
            else:
                handle_videos(valid_videos, options)

    except KeyboardInterrupt:
        print "\r"
        sys.exit()