Youtube 上傳影片 – 用Laravel 上傳影片到Youtube
Youtube 大家應該都不陌生,而上傳影片到Youtube 有用過的人大致上也不會太陌生
可是呢,要透過程式也就是API的方式上傳可能就沒這麼容易了,當然google有提供了一系列的API可以使用其中也包含了youtube api
只是實際使用上並不容易,還好已經有人寫好套件可以使用了,今天要來記錄一下 Laravel 5 – YouTube Video Upload
參考網址 : https://github.com/JoeDawson/youtube
如果你還沒看過前幾篇文章可以先參考 :
步驟一 :先安裝套件
跟安裝其他Composer套件相同,不難使用
1 |
composer require dawson/youtube |
接著修改config/app.php
1 2 3 4 5 6 7 8 9 |
'providers' => [ ... Dawson\Youtube\YoutubeServiceProvider::class, ], 'aliases' => [ ... 'Youtube' => Dawson\Youtube\Facades\Youtube::class, ], |
接著publish config
1 |
php artisan vendor:publish --provider="Dawson\Youtube\YoutubeServiceProvider" |
步驟二 :產生資料表
透過migration 將資料表建立到你的資料庫中
當然,在這之前你必須先設定好資料庫的連線參數
1 |
php artisan migrate |
上面指令完成後就可以看到像這樣子的資料表已經產生
步驟三 :建立你的youtube api 專案
這個步驟比較麻煩,因為youtube api 必須要經過認證後才可以拿到使用權,因此必須要登入 Google’s Developer Console
先建立一個專案,用來上傳你的youtube 影片使用
完成後應該就會在列表上看到專案存在了
點選進去可以看到這個project的一些細節,目前來說這些細節是不重要的
接著我們要取得憑證ID以及金鑰,點選左上角的三條線選擇API和服務 > 憑證
因為先在一張憑證都沒有,因此我們要選擇 建立憑證 > OAuth 用戶端 ID 這樣才能給網站使用
應用程式類型的部分就選擇網路應用程式即可
建立完成後就會看到下面兩項資訊,這兩樣很重要下個步驟需要加到程式碼中
最後點選進去剛剛建立的憑證內容,我們需要填入”已授權的重新導向URI”
內容請填入你的網站網址後面加上”youtube/callback”,例如 :
1 |
http://www.mydomain.com.tw/youtube/callback |
步驟四 :認證youtube api 並取得使用權限
首先將上個步驟取得的ID以及金鑰填入到.env變數中
1 2 |
GOOGLE_CLIENT_ID=你的用戶端ID GOOGLE_CLIENT_SECRET=你的用戶端金鑰 |
接著我們必須編輯config/youtube.php 檔案
將 ‘routes’ => [‘enable’ => false] 改為true,要注意的是下個步驟認證完畢後請務必改回false
接下來就可以在瀏覽器輸入以下網址開始進行認證
1 |
http://www.mydomain.com.tw/youtube/auth |
舉例來說,本次舉例的網址像這樣
接著瀏覽器會跳出提示,請選擇需要登入google的帳號,如果瀏覽器有登入多個google帳號就會像這樣子有很多個,請挑選剛剛建立api專案的帳號登入
登入後系統會跳出提示需要允許此帳號來管理您的youtube
完成後,我們回到資料表來看可以發現已經將access_token寫入了,接著就可以來上傳影片啦
步驟五 :上傳你的youtube 影片
無論是在controller中還是直接寫在router中都可以,請記得$fullPathToVideo填入實際上電腦中影片的路徑即可
標題、說明、tag都可以隨自己喜歡來定義影片
1 2 3 4 5 6 7 8 |
$video = Youtube::upload($fullPathToVideo, [ 'title' => 'My Awesome Video', 'description' => 'You can also specify your video description here.', 'tags' => ['foo', 'bar', 'baz'], 'category_id' => 10 ]); return $video->getVideoId(); |
更多的參數可以參考原作者github上的說明文件
到這邊為止就已經可以順利將影片上傳到Youtube 上啦,值得注意的是youtube api並不是完全免費的,使用時請注意每日存取量,超過就必須要付費啦~
首頁 » 技術文章 » Laravel » Youtube 上傳影片 – 用Laravel 上傳影片到Youtube