TaiBIF / camera-trap-api

RESTful API
6 stars 3 forks source link

影片上傳至 YouTube #128

Closed ghost closed 5 years ago

ghost commented 5 years ago

上一個版本的流程是:

  1. 前端 webapp 直接上傳 zip 後的影片到 S3
  2. 自動驅動 lambda 利用 YouTube API 上傳至 YouTube.

先前 lambda 出現錯誤訊息,東西丟不上去。查了youtube api 討論區,瞭解到有 24hrs 內 50 支影片的限制或存取次數上限(2000 點消費點)。故實作時應可控制 queue 的行程在此限制之內接續上傳。

(CC'ed @melissa0520 @lyh-yihsuan )

ghost commented 5 years ago
melissa0520 commented 5 years ago
  • [ ] 需要瞭解消費點數計算方式,例如以影像檔的平均大小一個檔案會用掉多少消費點。 @melissa0520

google客服說youtube沒有任何客服電話(說他們很難找),在亞洲也沒有任何部門,所以給了我美國的版權部門的email和傳真,我再思考一下怎麼整理成英文詢問 P.S. 客服也說我們的問題沒有直接相關的部門可以回答,比較接近的可能是版權部門(針對大量程式化上傳影片被鎖的情形,總共只有三個部門:舉報、版權、法律)

另外,這是youtube的api資源網站,可能可以先參考看看 https://www.youtube.com/intl/zh-TW/yt/dev/api-resources/

kelp404 commented 5 years ago

討論中提到一天僅能上傳 50 部影片,預計用 cron job 的方式上傳至 youtube。 會將 cron job 的程式寫到 task-worker.js 中,不獨立再開一個 cron-job.js,因為 cron-job 的負載會非常低,多跑一個 instance 太浪費。。

melissa0520 commented 5 years ago

@kelp404 之前使用的youtube api是Data API - videos.insert (用python寫的),我打算詢問官方是否能以程式化方式透過這個API上傳,並不受一天50部影片的限制,有沒有什麼資訊還可以提供讓官方更清楚我們的狀況呢?

ghost commented 5 years ago

影片上傳服務選擇及流程確認

kelp404 commented 5 years ago

我傳了 12M 的檔案 16 次之後就超過限制了,要跟 google 要求更高點數還是找其他服務?

https://console.developers.google.com/iam-admin/quotas?project=taibif-youbute

螢幕快照 2019-05-08 下午6 26 09
ghost commented 5 years ago

我們來試看看 Vimeo?

kelp404 commented 5 years ago

晚點試,我覺得這一定得付錢。 自己做的話現在來不及了,除非規定使用者自行轉成 mp4。

ghost commented 5 years ago

付費的話是 ok 的

hsieh-sunghai commented 5 years ago

如果透過GCP的"付費方案"與銷售人員聯繫是否可以得到答案呢? https://cloud.google.com/contact/

Jack

Kelp notifications@github.com 於 2019年5月8日 週三 下午6:40 寫道:

晚點試,我覺得這一定得付錢。 自己做的話現在來不及了,除非規定使用者自行轉成 mp4。

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/TaiBIF/camera-trap-api/issues/128#issuecomment-490437838, or mute the thread https://github.com/notifications/unsubscribe-auth/ACF6U7R5ENPRTKODPOJG34TPUKU2DANCNFSM4HI3V2SQ .

ghost commented 5 years ago

@f2ejack 也許請 @melissa0520 從這個方向去問會有進展。

melissa0520 commented 5 years ago

我沒有找到官網關於消費點數的說明, 然後Google cloud platform GCP的免費試用產品清單,其中有幾個我覺得有可能可以試試看(如Google cloud functions ?),不過要免費試用就必須先綁定信用卡(試用期間會有300美金的額度可供使用)。

我也已經詢問銷售人員,等待回覆

image

kelp404 commented 5 years ago

另外還有一個問題就是 oauth 登入。 昨天試著用 service_account 直接傳影片,一直傳不上去。網路上有人提到一定要用 oauth。 https://stackoverflow.com/questions/25803937/video-upload-using-youtube-google-api-directly-from-server-using-node-js

我用官方的工具拿到的 token 一小時後就會過期,要不停的去更新。 如果真的用這種方式驗證的話變成要做一個後台讓管理者輸入 youtube 的帳密,而且如果伺服器出問題停機超過一小時,管理者必須再去後台登入 youtube。

我今天會去查看看其他的服務。

melissa0520 commented 5 years ago

另外還有一個問題就是 oauth 登入。 昨天試著用 service_account 直接傳影片,一直傳不上去。網路上有人提到一定要用 oauth。 https://stackoverflow.com/questions/25803937/video-upload-using-youtube-google-api-directly-from-server-using-node-js

我用官方的工具拿到的 token 一小時後就會過期,要不停的去更新。 如果真的用這種方式驗證的話變成要做一個後台讓管理者輸入 youtube 的帳密,而且如果伺服器出問題停機超過一小時,管理者必須再去後台登入 youtube。

Google 那邊要跟我約時間電話討論,我預計約今天下午,也會把這件事跟他提

melissa0520 commented 5 years ago

請問我們這邊上傳影片的速度是多少?

kelp404 commented 5 years ago

AWS MediaConvert 測試過了,job 完成的 callback 目前找不到方法,預估會用 polling 檢查轉檔狀態。 @cjk-halodule 要自己存影片嗎? 要的話請給我不同計畫的範例影片跟要轉成多少解析度。

https://s3-ap-northeast-1.amazonaws.com/camera-trap-api-dev/test/test.mov mov 轉成 mp4 https://s3-ap-northeast-1.amazonaws.com/camera-trap-api-dev/test/test.mp4_1.mp4

https://ap-northeast-1.console.aws.amazon.com/mediaconvert/home?region=ap-northeast-1#/jobs/summary/1557389425640-mlbkz6

螢幕快照 2019-05-09 下午4 21 23
ghost commented 5 years ago

範例資料夾已分享。 我沒有辦法從 console 讀上面的任務摘要說。

請使用 https://aws.amazon.com/mediaconvert/pricing/ avc codec SD 1pass 30-60 fps 試看看

kelp404 commented 5 years ago

原檔會保留,轉出來的是要在瀏覽器上直接播放的,我覺得 30fps 就足夠了。

解析度 SD(720 × 480)確定夠嗎?

ghost commented 5 years ago

那就是 avc codec HD 1pass 30fps

kelp404 commented 5 years ago

@cjk-halodule

  1. 影片的副檔名接受 mov, avi, mp4 這些對嗎?wireframe 找不到
  2. 如果上傳單一影片的話,產生出來的 annotation 時間怎麼設?(圖片的話是從 exif)
  3. 之前討論的時候說過影片的使用情境是「看著影片然後加 annotation 並且標記時間」。 但是我們 annotation 的編輯界面中 時間 是不可動的,這部分沒問題嗎?

目前時間是必填欄位。 https://github.com/TaiBIF/camera-trap-api/blob/8d1747c34322ad9b7446f0d8a6a97ea027b91c2a/src/models/data/annotation-model.js#L79-L86

ghost commented 5 years ago
  1. 還有多幾個,全部是 AVI JPG M4V MP4 MOV MP3 => 我會補到 WF 中。
  2. 影片時間是算它的開始時間 EXIF 內有 kMDItemContentCreationDate = 2019-05-03 06:55:16 +0000
  3. 時間不用考慮影片長度,就令其不可動。
ghost commented 5 years ago

剛看了一下: kMDItemFSContentChangeDate = 2018-03-30 02:34:26 +0000 kMDItemContentModificationDate = 2018-03-30 02:34:26 +0000 這兩個欄位應該才是要參考的,kMDItemContentCreationDate 看來是檔案在送到台北來之前複製的時間。

mp4-EXIF.csv.gz

kelp404 commented 5 years ago
  1. 還有多幾個,全部是 AVI JPG M4V MP4 MOV MP3 => 我會補到 WF 中。

JPG, MP3

ghost commented 5 years ago

對不起,JPG 是打錯了,MP3 是和影像放在一起,所以想說即使沒有視訊也可以撥,但如果沒有辦法處理,就先不把 MP3 放進去。

kelp404 commented 5 years ago

MediaConver 在轉換時會需要指定影像跟聲音,有一個錯誤的話就無法轉換。 建議下階段在支援 mp3。

kelp404 commented 5 years ago

ref: https://developer.mozilla.org/en-US/docs/Web/API/File/lastModified

ghost commented 5 years ago

Verified.