gpt4 book ai didi

ruby-on-rails - 从 html 代码获取 youtube 视频 ID

转载 作者:数据小太阳 更新时间:2023-10-29 08:32:37 24 4
gpt4 key购买 nike

我有这样的html

<iframe width="560" height="315" src="http://www.youtube.com/embed/Wa6CA3YqV2Q" frameborder="0" allowfullscreen></iframe>

如何使用正则表达式获取视频 ID Wa6CA3YqV2Q?还有其他方法可以实现这一目标吗?

更新:我使用了 Nokogiri,并且设法获得了 http://www.youtube.com/embed/Wa6CA3YqV2Q,那么如何获得具有此链接的视频的 ID?

最佳答案

下面的代码将获取任何 vimeo 或 youtube URL 并返回视频 ID 和提供商。

在你的模型中

def parse_video_url(url)
@url = url

youtube_formats = [
%r(https?://youtu\.be/(.+)),
%r(https?://www\.youtube\.com/watch\?v=(.*?)(&|#|$)),
%r(https?://www\.youtube\.com/embed/(.*?)(\?|$)),
%r(https?://www\.youtube\.com/v/(.*?)(#|\?|$)),
%r(https?://www\.youtube\.com/user/.*?#\w/\w/\w/\w/(.+)\b)
]

vimeo_formats = [%r(https?://vimeo.com\/(\d+)), %r(https?:\/\/(www\.)?vimeo.com\/(\d+))]

@url.strip!

if @url.include? "youtu"
youtube_formats.find { |format| @url =~ format } and $1
@results = {provider: "youtube", id: $1}
@results
elsif @url.include? "vimeo"
vimeo_formats.find { |format| @url =~ format } and $1
@results = {provider: "vimeo", id: $1}
@results
else
return nil # There should probably be some error message here
end
end

然后在你的 Controller 中调用:

@results = @course.parse_video_url(@course.video_url)
# Access the hash with @results[:provider] or @results [:id]

在您的 View 中,您可以编写一个 IF 语句来显示提供者/id 组合的相关嵌入代码。

关于ruby-on-rails - 从 html 代码获取 youtube 视频 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17103453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com