Pipedream 및 Python을 사용하여 팟캐스트 에피소드를 자동으로 기록

나는 팟캐스트를 좋아하지만 내가 사랑하는 사람들의 새로운 에피소드를 모두 들을 시간이 거의 없습니다. 하지만 기사나 뉴스레터를 읽을 시간이 많기 때문에 새로운 에피소드를 자동으로 기록하고 이메일로 출력물을 나에게 보내는 것이 재미있을 것이라고 생각했습니다.

우리는 Python, JavaScript, Go 등으로 코드를 작성할 수 있도록 하면서 많은 서비스와 통합되는 온라인 워크플로우 빌더인 Pipedream을 사용할 것입니다. 각 워크플로에는 워크플로를 시작하는 하나의 트리거와 그 결과로 발생할 수 있는 여러 작업이 있습니다.

시작하기 전에 Pipedream account , Google 계정 및 free Deepgram API Key 이 필요합니다.

이 프로젝트에 대해 비어 있는 새 Pipedream 워크플로를 만듭니다.

새 에피소드가 출시되면 워크플로우 트리거



모든 Podcast는 새 에피소드가 있을 때마다 업데이트되는 공개 RSS 피드를 통해 게시됩니다. Pipedream에는 새 항목이 추가되었는지 15분마다 확인하는 트리거가 내장되어 있습니다.

모든 팟캐스트 RSS 피드에서 'RSS 피드의 새 항목' 트리거를 사용하십시오. 새 Deepgram 팟캐스트Voice of the Future용인 https://feeds.buzzsprout.com/1976304.rss 를 사용할 수 있습니다.



소스 만들기를 클릭하고 첫 번째 이벤트를 선택합니다. 이것은 하나의 팟캐스트 에피소드를 대표합니다.



선택하면 에피소드의 메타데이터 및 직접 미디어 링크를 포함하여 해당 RSS 피드 항목에 포함된 모든 데이터를 볼 수 있습니다. 이 모든 데이터는 워크플로 내의 향후 단계에서 사용할 수 있습니다.



Python으로 팟캐스트 녹음



워크플로가 트리거될 때마다 실행될 새 단계(이제 '작업')를 만듭니다. Python -> Python 코드 실행을 선택합니다. 구성 섹션에서 앱 추가를 클릭하고 Deepgram을 선택합니다. 계속하기 전에 API 키를 삽입하고 저장하십시오.


def handler(pd: "pipedream"): 를 제외한 모든 코드를 삭제합니다. 이 코드는 워크플로에서 이 단계에 도달했을 때 실행될 필수 함수 시그니처입니다. 이 줄 아래에 코드를 들여쓰기했는지 확인하세요. 그런 다음 트리거에서 URL을 가져오고 구성된 앱에서 Deepgram API 키를 가져옵니다.

url = pd.steps["trigger"]["event"]["enclosures"][0]["url"]
token = pd.inputs["deepgram"]["$auth"]['api_key']


위에서 언급했듯이 Pipedream에는 Python 단계의 기본 함수에 대한 서명def handler(pd: "pipedream"):이 필요합니다. 이 때문에 비동기 Deepgram Python SDK는 이 컨텍스트에서 사용할 수 없습니다. 대신 requests 라이브러리를 사용하여 API 요청을 직접 수행합니다.

코드 맨 위에 다음 줄을 추가합니다.

import requests


그런 다음 handler 함수 하단에서 Deepgram API 요청을 준비합니다.

listen = "https://api.deepgram.com/v1/listen?tier=enhanced&punctuate=true&diarize=true&paragraphs=true"
headers = { "Authorization": f"Token {token}" }
json = { "url": url }


이 요청은 Deepgram의 enhanced tier , diarization (speaker detection) 을 사용하고 punctuationparagraphs 을 사용하여 출력 형식을 지정합니다.

이제 설정했으므로 요청하고 형식화된 응답을 추출하고 값을 반환합니다.

r = requests.post(listen, json=json, headers=headers)
response = r.json()
transcript = response['results']['channels'][0]['alternatives'][0]['paragraphs']['transcript']
return transcript


최종 코드:

import requests

def handler(pd: "pipedream"):
  url = pd.steps["trigger"]["event"]["enclosures"][0]["url"]
  token = pd.inputs["deepgram"]["$auth"]['api_key']

  listen = "https://api.deepgram.com/v1/listen?tier=enhanced&punctuate=true&diarize=true&paragraphs=true"
  headers = { "Authorization": f"Token {token}" }
  json = { "url": url }

  r = requests.post(listen, json=json, headers=headers)
  response = r.json()

  transcript = response['results']['channels'][0]['alternatives'][0]['paragraphs']['transcript']
  return transcript


테스트를 클릭하면 트리거의 URL이 Deepgram으로 전송되고 반환된 값이 Pipedream에 표시됩니다.



성적 증명서와 함께 이메일 보내기



이제 성적표가 자동으로 생성되었으므로 Pipedream의 통합을 통해 또는 다른 Python 단계를 추가하여 무엇이든 할 수 있습니다. 이 게시물의 시작 부분에서 언급했듯이 이 프로젝트의 결과는 팟캐스트 콘텐츠가 포함된 이메일을 자신에게 보내는 것입니다. 제목 줄에 변수를 포함할 수도 있습니다.

자신에게 이메일 보내기 단계를 추가하고 제목 줄을 다음과 같이 설정합니다.

New episode of {{steps.trigger.event.meta.title}}: {{steps.trigger.event.title}}


텍스트를 다음으로 설정합니다.

Episode description: {{steps.trigger.event.description}}\n\n{{steps.python.$return_value}}


다음과 같아야 합니다.



단계를 테스트하면 몇 초 안에 이메일을 받을 수 있습니다. 워크플로를 배포하고 새로운 팟캐스트 에피소드를 즐겨보세요. 이 프로젝트에 대한 질문이나 Deepgram과 관련된 다른 것이 있으면 문의하십시오!

좋은 웹페이지 즐겨찾기