Я получил отличную работу youtube_it в сочетании с Paperclip для обработки загрузки видео через браузер, используя следующий код:
videos_controller.rb
def create
@video = Video.new(params[:video])
if @video.save
uploader = YouTubeIt::Upload::VideoUpload.new( :username => AppConfig[:youtube_user],
:password => AppConfig[:youtube_pass],
:dev_key => AppConfig[:youtube_api_key])
uploader.upload open( params[:video][:attachment] ), :title => @video.title,
:description => @video.description,
:category => 'some category',
:keywords => ['some keyword 1', "some keyword 2"]
@video.deliver_video_notification
flash[:notice] = 'Your video is under review for approval.<br/> Please check back in 48 hours.'
redirect_to videos_url
else
@errors = @video.errors
@current_video = params[:v].blank? ? Video.newest : Video.find(params[:v])
render :action => :index
end
end
Однако, как только видео загружено, я понятия не имею, какой URL YouTube создал для видео, не входя вручную на канал YouTube и не просматривая его. Я не видел никакого обратного вызова в журналах или в файле response.body, который выявил пункт назначения. Я хотел бы программно сохранить место назначения в каком-то методе after_save. Как он работает сейчас, он сохраняет видеообъект, а после сохранения загружает видео на YouTube.