1. 程式人生 > >youtube批量採集-低成本解決方案-2

youtube批量採集-低成本解決方案-2

之前我有一篇文章《YouTube視訊爬蟲-批量採集-低成本解決方案-技術難點和細節回顧》 提到過一種u2b視訊採集的方案。該方法適用於針對特定的up主進行批量採集,成本確實挺低,速度也蠻好。之前曾在部落格下方掛出郵箱地址,尋求技術交流,但是被很多伸手黨給打擾,在這裡我只想堅決地告訴諸位:給程式碼是不可能的,我相信思路對你們才是更重要滴。

背景:

1.騰訊雲的非香港地區海外伺服器均很難連線
2.某些香港地區的伺服器也很難連線
3.我們需要根據關鍵字進行u2b視訊採集,用以支撐我們自己開發的視訊編輯器的本地素材庫

針對上述背景,初步意見:

1.騰訊雲如果做視訊採集只能用香港的伺服器了
2.香港地區的某些伺服器無法連線,我目前推測的原因是恰好你使用的ip被禁,你需要繫結彈性ip,更換ip地址,直到換到內地可用ip
3.針對關鍵字的視訊採集,還在想著用爬蟲嗎?千萬別走彎路啊!Google開放了 YouTube Data api

,直接可以拿到結果。

整體思路

1.Rest API:部署在香港伺服器,轉發YouTube Data api查詢結果
2.GUI:執行在使用者電腦,用於使用者採集操作,使用者根據關鍵字獲取待採集任務列表
3.採集器:執行在香港伺服器,依然使用我們的youtube-dl
4.採集完成之後,推到同區的騰訊雲物件儲存-香港區
5.本地下載器,執行在使用者電腦,用於從騰訊雲物件儲存下載視訊到本地

價格計算

執行成本計算詳細
經過計算,每天下載15分鐘內的視訊200個,每月的執行成本是300多。114元買到1C1G2M的香港伺服器,每天的採集極限是160GB

YouTube Data API 開發文件傳送門

關於YouTube Data api我有話要講

在之前的文章中有提到,當時走了彎路去看 youtube-api ,結果發現並沒有什麼卵用,這次呢?可是沾了光,不走彎路,直達目的地啦~
YouTube API中的Search/list介面,可以直接根據關鍵字獲取符合條件的vedio、channel、playlist,下面是官方給出的demo

# Sample python code for search.list

def search_list_by_keyword(client, **kwargs):
  # See full sample for function
  kwargs = remove_empty_kwargs(**kwargs)

  response = client.search().list(
    **kwargs
  ).execute()

  return print_response(response)

search_list_by_keyword(client,
    part='snippet',
    maxResults=25,
    q='surfing',
    type='')

其實篩選條件有很多的,甚至具體到結果排序方式都可以配置。

返回

{
  "kind": "youtube#searchListResponse",
  "etag": etag,
  "nextPageToken": string,
  "prevPageToken": string,
  "regionCode": string,
  "pageInfo": {
    "totalResults": integer,
    "resultsPerPage": integer
  },
  "items": [
    search Resource
  ]
}

返回引數說明