gpt4 book ai didi

ruby-on-rails - 如何使用 youtube_it gem 通过 channel 获取视频

转载 作者:行者123 更新时间:2023-12-01 05:11:34 26 4
gpt4 key购买 nike

如何使用 Ruby on Rails 的 youtube_it gem 从 youtube channel (https://www.youtube.com/channel/UCwHnsUEYrQUTUxC4dvrv0QQ) 获取视频?

或者你能告诉我另一个可以帮助我的 gem 吗?

最佳答案

这就是我的做法。

我的 config/initializers/youtube_it.rb 中有这个:

$youtube_it = YouTubeIt::Client.new(dev_key: ENV['YOUTUBE_KEY'])

获取视频的第一页:
    query = {
author: channel_url.split('/').last,
order_by: 'published',
page: 1,
}

# scraping from newesr to oldest
videos = $youtube_it.videos_by(query).videos

这是一个抓取示例,您可以在其中安排作业定期调用抓取方法。

该方法首先从最新的视频到最旧的视频。然后是 backward_scrape_done设置为 true然后只抓取新视频。
class Import < ActiveRecord::Base

def scrape
query = {
author: channel_url.split('/').last,
order_by: 'published',
}

query[:page] = cursor

# scraping from newesr to oldest
videos = fetch_videos(query)


if videos.count == 0
# we've reached the end
self.backward_scrape_done = true
self.cursor = 0
end

for video in videos
add_video video
end

# next time scrape next page
self.cursor = cursor + 1

ensure
self.scraped_at = Time.now
self.save!
end

def fetch_videos(query)
$youtube_it.videos_by(query).videos
end


def add_video video
url = video.player_url.
gsub(/[?&]feature=youtube_gdata_player/, '')

# skip this video if its already there
if Video.where(youtube_url: url).first
self.cursor = 0
save
return
end

video = YoutubeVideo.create!(
title: video.title,
duration: video.duration,
description: video.description,
youtube_url: url,
)
end
end

希望有帮助!

更新:由于 youtube 即将摆脱其 API V2,您应该切换到支持最新 API 的内容,例如 yt我现在使用的 gem :

https://github.com/Fullscreen/yt

关于ruby-on-rails - 如何使用 youtube_it gem 通过 channel 获取视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24492454/

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