问题 ipython笔记本YouTubeVideo类可以从时间偏移播放


如果我将YouTube视频片段嵌入到iPython笔记本中:

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

有没有办法可以嵌入这个,以便它可以在特定时间播放?所以1:47:03 - 1小时47分3秒?


5884
2017-10-29 10:27


起源



答案:


更新

现在你可以使用了 任何参数 你喜欢youtube播放器:

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")

老答案

目前的实施 不允许它,但它很容易扩展:

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)

瞧:

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

现在我们可以发送拉取请求:)


11
2017-10-29 11:48



啊 - 当然,它输出的是HTML,而不是视频。是的 - 我认为一个拉取请求将是一个整洁的方式来包装它。 - Danny Staple
完成 - 归因于此SO页面。 - Danny Staple
结果有点不同 - 我们使用了一个系统,将其他kwargs转换为youtube API中的params(在display.YoutubeVideo类中记录)。这意味着你必须通过timedelta将你的时间转换为youtube类,但这意味着你可以使用youtube播放器中你喜欢的任何参数。 - Danny Staple
@DannyStaple我觉得现在好多了!这样你就可以使用了 任何 您喜欢的播放器参数。做得好! - Paolo Moretti


答案:


更新

现在你可以使用了 任何参数 你喜欢youtube播放器:

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")

老答案

目前的实施 不允许它,但它很容易扩展:

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)

瞧:

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

现在我们可以发送拉取请求:)


11
2017-10-29 11:48



啊 - 当然,它输出的是HTML,而不是视频。是的 - 我认为一个拉取请求将是一个整洁的方式来包装它。 - Danny Staple
完成 - 归因于此SO页面。 - Danny Staple
结果有点不同 - 我们使用了一个系统,将其他kwargs转换为youtube API中的params(在display.YoutubeVideo类中记录)。这意味着你必须通过timedelta将你的时间转换为youtube类,但这意味着你可以使用youtube播放器中你喜欢的任何参数。 - Danny Staple
@DannyStaple我觉得现在好多了!这样你就可以使用了 任何 您喜欢的播放器参数。做得好! - Paolo Moretti