Domanda

If I am embedding a youtube video clip into an iPython notebook:

from IPython.display import YouTubeVideo
YouTubeVideo("Pi9NpxAvYSs")

Is there a way I can embed this such that it would play from a specific time? So 1:47:03 - 1 hour, 47 minutes and 3 seconds?

È stato utile?

Soluzione

Update

Now you can use any parameter you like from the youtube player:

from datetime import timedelta

start=int(timedelta(hours=1, minutes=46, seconds=40).total_seconds())

YouTubeVideo("Pi9NpxAvYSs", start=start, autoplay=1, theme="light", color="red")

Old answer

The current implementation doesn't allow it, but it's pretty easy to extend:

from datetime import timedelta

class YouTubeVideo(object):
    def __init__(self, id, width=400, height=300, start=timedelta()):
        self.id = id
        self.width = width
        self.height = height
        self.start = start.total_seconds()

    def _repr_html_(self):
        return """
            <iframe
                width="%i"
                height="%i"
                src="http://www.youtube.com/embed/%s?start=%i"
                frameborder="0"
                allowfullscreen
            ></iframe>
        """%(self.width, self.height, self.id, self.start)

And voilà:

YouTubeVideo("Pi9NpxAvYSs", start=timedelta(hours=1, minutes=47, seconds=3))

Now we could send a pull request :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top