12/08/2018, 14:49

Tải và upload video tự động lên youtube với youtube-dl và youtube-api - Bài 2 : Upload video với Yt - The reliable YouTube API Ruby client

Ở bài trước https://viblo.asia/nhs3108/posts/gEmzOxEAGpv, chúng ta đã cùng tìm hiểu về youtube-dl - một chương trình dòng lệnh sử dụng để download video từ YouTube và khá nhiều trang nổi tiếng khác như Instagram , MTV, Soundcloud và Redtube, thậm chí là Facebook .v.v, đồng thời chúng ta cũng cùng ...

Ở bài trước https://viblo.asia/nhs3108/posts/gEmzOxEAGpv, chúng ta đã cùng tìm hiểu về youtube-dl - một chương trình dòng lệnh sử dụng để download video từ YouTube và khá nhiều trang nổi tiếng khác như Instagram , MTV, Soundcloud và Redtube, thậm chí là Facebook .v.v, đồng thời chúng ta cũng cùng nhau xây dựng một web application có khả năng nhận URL hay ID của video youtube để download bằng Ruby On Rails, với thư viện youtube-dl.rbđược cung cấp cho ngôn ngữ lập trình ruby. Ở bài này, chúng ta sẽ tìm hiểu về Yt - The reliable YouTube API Ruby client, có thể coi như một thư viện của ruby, được xây dựng để làm việc với youtube api, cung cấp khả năng tìm kiếm, lấy thông tin và đặc biệt là upload video - thứ mà chúng ta sẽ tìm hiểu ở bài này.

Tham khảo Github repository của yt tại https://github.com/Fullscreen/yt Documentation http://fullscreen.github.io/yt/videos.html

Tại terminal, bạn sử dụng lệnh

gem install yt

Hoặc nếu bạn đã cài đặt từ trước, bạn có thể sử dụng lệnh

gem update yt

để chắc chắn rằng bạn đang sử dụng phiên bản mới nhất.

Để khai báo rằng chúng ta sẽ sử dụng yt gem vào ứng dụng RoR, ở Gemfile, bạn thêm đoạn sau

gem 'yt', '~> 0.29.1'

Ok. Vây là xong.

Nếu các bạn có theo dõi bài viết thứ nhất của mình, chắc hẳn các bạn sẽ để ý đoạn code trong DownloadsController

class DownloadsController < ApplicationController
  def index
    
  end

  def new
    
  end

  def create
    video_url = params[:video_url] # Lấy url từ form gửi lên
    video = Yt::Video.new url: video_url # Lấy thông tin video từ url
    YoutubeDL.download video_url, output: "videos/#{video.id}" # Lưu video từ url, đặt video vào thư mục video với tên là id của video đó trên youtube
    redirect_to downloads_path # Trở về trang index
  end
end

video = Yt::Video.new url: video_url chính là mình đang sử dụng thư viện yt mà chúng ta đa nhắc đến trong bài viết này để lấy thông tin video từ URL gửi lên từ form.

2.1 Cấu hình

Đầu tiên, hay truy cập https://console.developers.google.com/apis/credentials và tạo API keys cùng với OAuth 2.0 client IDs giống như mình nhé

Tiếp tục truy cập https://developers.google.com/oauthplayground/ để lấy refresh token (bằng cách này, chúng ta sẽ không phải xác thực thủ công mỗi lần authenticate nữa) Mình hướng dẫn các bước lấy youtube refresh token nhé. Các bạn chỉ cần follow theo hình thôi             </div>
            
            <div class=

0