如何利用 Pipedream 自動推送 YouTube Video 到 Telegram Channel

2020年11月29日 星期日

上次,我們就了解過如何使用 Pipedream 訂閱經濟數據。這次我們就會玩轉它的 Source 功能,來做到自動推送 YouTube Channel 新 Video 到 Telegram Channel 的效果。

先放上效果圖:

何謂 Source

Pipedream makes it easy to inspect events, trigger workflows on events, or consume events via batch or real-time APIs. Create a source to find and activate curated sources like HTTP or RSS, or build your own!

根據 Pipedream 官方的定義, Source 是用來發佈事件的途徑。你可以透過它來訂閱 HTTP, RSS 事件,甚至是自己做一個 Source。

訂閱 Haachama Ch. 赤井はあと

首先,進入 Pipedream 的 Source 頁面:https://pipedream.com/sources

然後,點擊 CREATE SOURCE 按鈕

再點擊 Select an app 來選擇你所希望訂閱的資料來源,比如說我們這一次談及的 YouTube (Data API)。由於我們會使用 YouTube 官方的 Data API,所以你需要給予你的 YouTube 帳號權限。

Channel ID 填寫 UC1CfXB_kRs3C-zaeTG3oGyg

Name 填寫一個好記的名稱,比如 Haachama

最後點擊 Create Source 來完成創建 Source 的步驟。

成功之後,你就會看到下面的界面。

隨手點擊圖中左邊列表第一個 Item 來喚出最新的影片([Membership stream] すやすやSleeping ASMR💤)

你可以看到以下的 Event:

{
  "kind": "youtube#searchResult",
  "etag": "OSpvMb8NGVhOVylxssoclTqMpvY",
  "id": {
    "kind": "youtube#video",
    "videoId": "dPraCbPrIJ4"
  },
  "snippet": {
    "publishedAt": "2020-11-27T15:53:16Z",
    "channelId": "UC1CfXB_kRs3C-zaeTG3oGyg",
    "title": "[Membership stream] すやすやSleeping ASMR💤",
    "description": "配信がはじまったらメン限になるよ! It's gonna be membership only stream when it start. Membership to support HAACHAMA!",
    "thumbnails": {
      "default": {
        "url": "https://i.ytimg.com/vi/dPraCbPrIJ4/default_live.jpg",
        "width": 120,
        "height": 90
      },
      "medium": {
        "url": "https://i.ytimg.com/vi/dPraCbPrIJ4/mqdefault_live.jpg",
        "width": 320,
        "height": 180
      },
      "high": {
        "url": "https://i.ytimg.com/vi/dPraCbPrIJ4/hqdefault_live.jpg",
        "width": 480,
        "height": 360
      }
    },
    "channelTitle": "Haachama Ch. 赤井はあと",
    "liveBroadcastContent": "upcoming",
    "publishTime": "2020-11-27T15:53:16Z"
  }
}

從上面的 JSON,你可以看到幾個有用的資訊,比如說 snippet.title, snippet.description, snippet.publishedAt。

整合

要使用這個 Source,非常簡單,只需點擊 Integrations 下方的 CREATE WORKFLOW 按鈕。

如此一來,每當 Haachama 發佈新的影片(事件),就會自動觸發我們部署於 Pipedream 該 Node.js 流程。在這個流程中,你可以使用幾乎任何的 npm package,包括 lodash,moment,axios 等等。

點擊之後,你就會看到這樣的界面:

與上次寫 Code 的時候一模一樣,都是那麼簡單。

自動發佈 Telegram 信息

接下來,筆者會結合 Haachama 的 YouTube Channel 到筆者的財經頻道,以便一齊感受 Haachama 的溫暖。

效果如下:

你只需要給予你的 Telegram Bot Token,以及 Telegram Bot 的 Token,即可定時發佈信息。

這裏引用了 axios 來發送 HTTP 請求,以及使用 lodash.get 來確保獲取值的時候不會爆炸。

具體 Code 片段如下:

const axios = require('axios');

const { get } = require('lodash');

const text = 
`
${get(steps, 'trigger.event.snippet.title')} - ${get(steps, 'trigger.event.snippet.channelTitle')}
https://www.youtube.com/watch?v=${get(steps, 'trigger.event.id.videoId')}
`

const url = `https://api.telegram.org/bot${auths.telegram_bot_api.token}/sendMessage`;

const object = {
  chat_id: params.chat_id,
  text,
}

const { data } = await axios.post(url, object);

return data;

你也可以 Clone 我的 Workflow 來直接部署。

https://pipedream.com/@kepler/subscribe-youtube-channel-telegram-p_QPC1PJk

對了,別忘記點擊 Enable the trigger step to receive live events 來啓動接收 Live Events。

後記

有人會問我,假如有一天,你財務自由,可以隨心所欲隨時退休,你還會寫 Code 嗎?

我想,我的答案是 YES。Programming 是一個非常實用的工具。

將複製的流程以簡單的文字表達,然後重複使用,發揮系統的複利效應。這個程序員不就是天天寫的系統嗎?只不過很多程序員沒有了解到自己所運用的工具的力量......

當然,到時候可能不是寫 Node.js,而是 No Code。

這裏打一下廣告,如果你想在 Telegram 訂閱最新最快的財經新聞的話,歡迎訂閱財經頻道

留言

Leave a Comment

必要欄位爲*。留言所填寫的電子郵件地址不會公開。

Kepler Finance

當 Python 遇上 Finance,它們將會帶來超乎想像的威力。

訂閱 Kepler Finance 最新文章

昔日手記

免責聲明

本博客純屬個人意見或經驗分享,無論在任何情況下,不應被視為投資建議,也不構成要約、招攬、邀請、誘使、建議或推薦。投資(機)者應注意投資涉及風險。股票價格可升可跌,有時可能會非常波動,甚至變成毫無價值。買賣證券未必一定能夠賺取利潤,反而可能會招致損失。