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