#!/usr/bin/env python # Get a test sample with: # youtube-dl -t http://www.youtube.com/watch?v=yWa-YXiSk2Y import sys import gobject gobject.threads_init() import gst class Player: def __init__(self, filename): self._filename = filename self._player = gst.element_factory_make("playbin2", "player") self._player.set_property("uri", filename) self._player.connect("about-to-finish", self.on_about_to_finish) def run(self): self._player.set_state(gst.STATE_PLAYING) loop = gobject.MainLoop() loop.run() def on_about_to_finish(self, player): sys.stderr.write(".") player.set_property("uri", self._filename) def main(args): def usage(): sys.stdout.write("usage: %s \n" % args[0]) if len(args) != 2: usage() sys.exit(1) if not gst.uri_is_valid(args[1]): sys.stderr.write("Error: Invalid URI: %s\n" % args[1]) sys.exit(1) player = Player(args[1]) player.run() if __name__ == '__main__': sys.exit(main(sys.argv))