我对rails上的ruby相当新。我正在尝试使用yt gem获取youtube视频的详细信息。我看到了以下问题。
“对YouTube API的请求导致意外的服务器错误:{}您可以通过运行以下命令手动重试相同的请求:curl -X GET -H”content-length:0“-H”user-agent:Yt ::请求(gzip)“
当我手动访问API URL时,我会得到预期的详细信息。
这是我的文件和代码。
articles_contoller
def index
@article = Article.all
@campaign = Campaign.all
@video = Yt::Video.new url: 'https://www.youtube.com/watch?v=5Tzg9173xC4'
@title = @video.title
end
index.html.erb
<div class="row">
<iframe width="350" height="250"
src="https://www.youtube.com/embed/<%=@video.id%>" frameborder="0" allowfullscreen>
</iframe>
手动响应API调用
"kind": "youtube#videoListResponse",
"etag": "\"q5k97EMVGxODeKcDgp8gnMu79wM/REiwRaaIO10kgiEe8tHbpNZgd4g\"",
"pageInfo": {
"totalResults": 1,
"resultsPerPage": 1
},
"items": [
{
"kind": "youtube#video",
"etag": "\"q5k97EMVGxODeKcDgp8gnMu79wM/wYDY_ffgX0ztxRb89MdmYL7kALY\"",
"id": "5Tzg9173xC4",
"snippet": {
"publishedAt": "2015-03-04T09:21:18.000Z",
"channelId": "UCgZ-2dsrFfrWCskNEwTNFPQ",
"title": "Anits ECE Flashmob 2k15",
"description": "",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/5Tzg9173xC4/default.jpg",
"width": 120,
"height": 90
},
"medium": {
"url": "https://i.ytimg.com/vi/5Tzg9173xC4/mqdefault.jpg",
"width": 320,
"height": 180
},
"high": {
"url": "https://i.ytimg.com/vi/5Tzg9173xC4/hqdefault.jpg",
"width": 480,
"height": 360
}
},
"channelTitle": "anits ece",
"categoryId": "22",
"liveBroadcastContent": "none",
"localized": {
"title": "Anits ECE Flashmob 2k15",
"description": ""
},
"defaultAudioLanguage": "en"
}
}
]
我相信我可能会遗漏一些愚蠢的东西。试图通过查看各种论坛和教程来解决,但没有运气。
感谢您的帮助
答案 0 :(得分:1)
我现在有同样的问题 - 运气好吗?
<强>更新强>
我刚刚解决了这个问题 - 对我来说,这是我在localhost中使用SSL获得的错误。
将此行添加到development.rb
,然后重试。
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
答案 1 :(得分:0)
您是否设置了API密钥?执行此操作的最佳位置是初始化程序:
# config/initializers/youtube.rb
Yt.configure do |config|
config.api_key = ENV['youtube_key']
end