안녕하세요.
11기 사무 자동화 부트캠프에 참여하고 있는 셔니입니다.
세상에 정보는 많고, 많은 정보를 어떻게 잘 흡수하는 지가 매우 중요하다고 생각합니다!
그래서 관심 키워드를 설정하고, 그 키워드로 검색한 결과를 요약해서 SNS에 기록하는 것을 자동화하고 싶어졌습니다.
동시에, 여러 개의 SNS에 한번에 업로드 해보면 좋지 않을까 생각이 들었습니다!
자동화 흐름만 생각하여 ChatGPT에게 구현 과정을 물어보았습니다.
대략적인 흐름을 주고 어떻게 구현할 수 있는지를 물어보았습니다.
Prompt
##요청사항
나는 아래의 과정을 make.com으로 자동화하고 싶어.
make.com에서 구현하는 방법을 구체적으로, 아주 상세하게 알려줘.
make.com을 처음 쓰는 사람도 이해하기 쉽도록 설명해줘.
##과정
Step1. 사용자가 검색할 키워드 n개를 구글 스프레드 시트가 작성한다.
Step2. 각 키워드를 순차적으로 유튜브에서 검색한다.
Step3. 1만 조회수 이상, 상위 10개의 영상의 자막, 내용을 추출한다.
Step4. 상위 10개의 영상을 claude api를 활용해서 요약한다.
Step5. 요약된 내용을 페이스북, 인스타그램, 네이버 블로그에 각각 업로드한다.
Step6. 업로드 전에 요약된 내용을 개인 메일로 확인을 받는다.
Step7. 메일로 확인이 되면 sns에 업로드 한 다.
Step8. sns에 업로드 되면 완료 메일을 보내고, 업로드에 실패하면 실패했다고 문자로 보낸다.
Answer
Make.com을 활용해 위의 과정을 자동화하는 방법을 단계별로 상세히 설명하겠습니다. 각 단계를 처음 사용하는 사람도 이해할 수 있도록 상세히 설명하겠습니다.
### Step 1: 사용자가 검색할 키워드 n개를 구글 스프레드 시트에 작성
1. **Google Sheets 준비**:
- 구글 스프레드 시트를 열고, 키워드를 입력할 셀을 마련합니다. 예를 들어, 첫 번째 열에 키워드를 입력합니다.
2. **Make.com에서 Google Sheets 연결**:
- Make.com에 로그인 후, 시나리오를 만듭니다.
- 첫 번째 모듈로 "Google Sheets"를 선택하고 "Watch Rows" 트리거를 설정합니다.
- 구글 계정에 로그인하고 키워드가 입력된 스프레드 시트를 선택합니다.
- 키워드가 입력된 범위를 설정합니다 (예: A1:A10).
### Step 2: 각 키워드를 순차적으로 유튜브에서 검색
1. **YouTube API 설정**:
- YouTube API 키를 발급받습니다 (Google Cloud Platform에서 YouTube Data API v3 사용 설정).
2. **Make.com에서 YouTube API 연결**:
- 두 번째 모듈로 "HTTP"를 선택하고 "Make a request"를 설정합니다.
- 요청 유형을 GET으로 설정하고 YouTube API 검색 URL을 입력합니다:
```
<https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=10&q={{Keyword}>}&key={{Your_API_Key}}
```
- "Keyword"를 구글 스프레드 시트에서 가져온 값으로 설정합니다.
### Step 3: 1만 조회수 이상, 상위 10개의 영상의 자막, 내용을 추출
1. **영상 조회수 및 자막 추출**:
- YouTube API의 응답에서 영상 ID를 추출합니다.
- 각각의 영상에 대해 다시 HTTP 모듈을 사용하여 자막과 조회수를 확인합니다:
```
<https://www.googleapis.com/youtube/v3/videos?part=statistics,snippet&id={{Video_ID}>}&key={{Your_API_Key}}
```
- 조회수가 1만 이상인 영상을 필터링합니다.
- 자막을 추출하기 위해 YouTube Data API의 "captions" 엔드포인트를 사용합니다.
### Step 4: 상위 10개의 영상을 Claude API를 활용해서 요약
1. **Claude API 설정**:
- Claude API 키를 발급받습니다.
2. **Make.com에서 Claude API 연결**:
- HTTP 모듈을 사용하여 Claude API에 요약 요청을 보냅니다:
```
<https://api.claude.ai/v1/summarize>
```
- 요청 본문에 자막 내용을 포함하고 요약 요청을 보냅니다.
### Step 5: 요약된 내용을 페이스북, 인스타그램, 네이버 블로그에 각각 업로드
1. **SNS API 설정**:
- 페이스북, 인스타그램, 네이버 블로그의 API 키를 발급받습니다.
2. **Make.com에서 SNS 연결**:
- 각 SNS에 대한 HTTP 모듈을 설정합니다.
- 페이스북:
```
<https://graph.facebook.com/v11.0/me/feed>
```
- 인스타그램:
```
<https://graph.instagram.com/v11.0/me/media>
```
- 네이버 블로그:
```
<https://openapi.naver.com/blog/writePost.json>
```
- 각각의 요약된 내용을 포스트합니다.
### Step 6: 업로드 전에 요약된 내용을 개인 메일로 확인 받기
1. **Email 모듈 설정**:
- Email 모듈을 추가하고, 요약된 내용을 이메일로 보냅니다.
### Step 7: 메일로 확인이 되면 SNS에 업로드
1. **이메일 응답 확인**:
- Email 모듈을 설정하여 이메일 응답을 대기합니다.
- 응답을 확인하고, 승인되면 다음 단계로 넘어갑니다.
### Step 8: SNS에 업로드 되면 완료 메일을 보내고, 업로드에 실패하면 실패했다고 문자로 보냅니다
1. **업로드 결과 확인**:
- 각 SNS API의 응답을 확인합니다.
- 성공 시 완료 메일을 보내고, 실패 시 실패 메일을 보냅니다.
- 문자 발송을 위해 Twilio 등의 SMS 서비스 API를 사용합니다.
### 종합 시나리오 작성
1. **시나리오 구성**:
- Google Sheets 모듈 -> HTTP 모듈 (YouTube 검색) -> HTTP 모듈 (조회수 및 자막 확인) -> HTTP 모듈 (Claude 요약) -> Email 모듈 (요약본 확인 요청) -> 조건부 분기 (이메일 응답) -> SNS 업로드 모듈 -> 조건부 분기 (업로드 결과) -> Email/SMS 모듈 (결과 알림).
위의 모든 단계를 차례대로 Make.com에서 구성하면 자동화된 워크플로우를 완성할 수 있습니다. 각 모듈의 설정은 API 키와 필요한 매개변수를 정확히 입력하는 것이 중요합니다.
구체적으로 작성해준 건지는 모르겠으나, make로 구현하는 방법을 알려주었습니다.
유튜브에 자막이 없는 경우에 대비하여 방법을 물어보았습니다.
Answer
자막이 없는 유튜브 영상의 내용을 가져오기 위해서는 비디오의 오디오를 텍스트로 변환해야 합니다. 이를 위해 음성 인식 API를 사용할 수 있습니다. 구체적으로는 Google Cloud Speech-to-Text API를 사용하여 오디오를 텍스트로 변환한 후, 해당 텍스트를 Claude API로 요약할 수 있습니다. 다음 단계는 이를 구현하는 방법을 설명합니다.
### Step-by-Step Implementation
### Step 1: YouTube에서 동영상의 오디오 추출
1. **YouTube API 설정**:
- 앞서 설정한 YouTube API를 사용하여 검색 결과에서 비디오 ID를 추출합니다.
2. **동영상 다운로드**:
- ffmpeg 등의 도구를 사용하여 동영상의 오디오를 추출합니다.
- Make.com에서는 직접적으로 ffmpeg를 사용할 수 없으므로, HTTP 요청을 통해 서버에서 이 작업을 처리할 수 있는 스크립트를 호출해야 합니다.
### Step 2: 오디오 파일을 Google Cloud Storage에 업로드
1. **Google Cloud Storage 설정**:
- Google Cloud Platform에서 버킷을 생성하고, 필요한 권한을 설정합니다.
2. **오디오 파일 업로드**:
- Make.com에서 Google Cloud Storage 모듈을 사용하여 오디오 파일을 업로드합니다.
### Step 3: Google Cloud Speech-to-Text API를 사용하여 오디오를 텍스트로 변환
1. **Google Cloud Speech-to-Text API 설정**:
- Google Cloud Speech-to-Text API를 활성화하고 API 키를 발급받습니다.
2. **Make.com에서 Speech-to-Text API 연결**:
- HTTP 모듈을 사용하여 Google Cloud Speech-to-Text API에 오디오 파일 변환 요청을 보냅니다:
```
POST <https://speech.googleapis.com/v1/speech:recognize>
{
"config": {
"encoding": "LINEAR16",
"sampleRateHertz": 16000,
"languageCode": "en-US"
},
"audio": {
"uri": "gs://your-bucket/your-audio-file.wav"
}
}
```
- 응답으로부터 변환된 텍스트를 받습니다.
### Step 4: 변환된 텍스트를 Claude API로 요약
1. **Claude API 설정**:
- 이전과 동일하게 Claude API를 사용합니다.
2. **Make.com에서 Claude API 연결**:
- HTTP 모듈을 사용하여 변환된 텍스트를 Claude API에 요약 요청을 보냅니다:
```
POST <https://api.claude.ai/v1/summarize>
{
"text": "{{Transcribed_Text}}"
}
```
### Step 5: 요약된 내용을 페이스북, 인스타그램, 네이버 블로그에 각각 업로드
1. **SNS API 설정**:
- 이전과 동일하게 SNS API를 설정합니다.
2. **Make.com에서 SNS 연결**:
- 각각의 SNS에 요약된 내용을 포스트합니다.
### Step 6: 업로드 전에 요약된 내용을 개인 메일로 확인 받기
1. **Email 모듈 설정**:
- 이전과 동일하게 Email 모듈을 설정하여 요약된 내용을 이메일로 보냅니다.
### Step 7: 메일로 확인이 되면 SNS에 업로드
1. **이메일 응답 확인**:
- 이전과 동일하게 이메일 응답을 대기하고, 승인되면 다음 단계로 넘어갑니다.
### Step 8: SNS에 업로드 되면 완료 메일을 보내고, 업로드에 실패하면 실패했다고 문자로 보냅니다
1. **업로드 결과 확인**:
- 이전과 동일하게 업로드 결과를 확인하고, 성공 시 완료 메일을, 실패 시 실패 메일을 보냅니다.
- 문자 발송을 위해 Twilio 등의 SMS 서비스 API를 사용합니다.
### 종합 시나리오 작성
1. **시나리오 구성**:
- Google Sheets 모듈 -> HTTP 모듈 (YouTube 검색) -> HTTP 모듈 (오디오 추출) -> Google Cloud Storage 모듈 (오디오 업로드) -> HTTP 모듈 (Speech-to-Text 변환) -> HTTP 모듈 (Claude 요약) -> Email 모듈 (요약본 확인 요청) -> 조건부 분기 (이메일 응답) -> SNS 업로드 모듈 -> 조건부 분기 (업로드 결과) -> Email/SMS 모듈 (결과 알림).
위의 모든 단계를 차례대로 Make.com에서 구성하면 자막이 없는 YouTube 영상의 내용을 자동으로 처리할 수 있는 워크플로우를 완성할 수 있습니다. 각 모듈의 설정은 API 키와 필요한 매개변수를 정확히 입력하는 것이 중요합니다.
</aside>
google cloud speech to text를 사용하라고 알려주네요 ㅎㅎ
이것도 직접 써봐야 할 것 같네요!!
써보신 분이 있다면, 가능할지 알려주시면 감사하겠습니다 :)
추가로, 예상되는 어려운 점을 미리 물어보았습니다.
어려운 점을 확인하여 어떻게 대비하면 좋을 지 찾아볼 예정입니다.
<aside>
💡 자동화 과정을 구현하면서 예상되는 어려움과 이를 해결할 수 있는 방법을 설명하겠습니다.
### 예상되는 어려움 및 해결 방법
### 1. YouTube API 할당량 제한
**어려움**: YouTube API에는 일일 할당량이 있으며, 이를 초과하면 추가 요청을 할 수 없습니다. 여러 키워드를 검색하고, 조회수와 자막 정보를 가져오다 보면 할당량을 초과할 수 있습니다.
**해결 방법**:
- **API 키 최적화**: 여러 개의 API 키를 사용하여 할당량을 분산합니다.
- **요청 최적화**: 필요한 데이터만 요청하도록 API 호출을 최적화합니다.
- **할당량 모니터링**: Make.com에서 API 호출 전후로 할당량을 확인하는 로직을 추가하여 할당량 초과 시 대체 전략을 사용합니다.
### 2. 자막이 없는 동영상 처리
**어려움**: 모든 동영상에 자막이 존재하지 않으며, 자막이 없는 동영상의 경우 내용을 추출하는데 문제가 발생합니다.
**해결 방법**:
- **오디오 추출 및 음성 인식**: ffmpeg와 Google Cloud Speech-to-Text API를 사용하여 동영상의 오디오를 텍스트로 변환합니다. 이를 통해 자막이 없는 동영상의 내용을 추출할 수 있습니다.
- **오디오 품질 관리**: 음성 인식의 정확도를 높이기 위해 고품질의 오디오를 사용합니다. 배경 소음이 적고 명확한 발음을 가진 동영상을 우선적으로 처리합니다.
### 3. Claude API 요약 정확도
**어려움**: Claude API를 사용한 요약 결과가 원하는 품질에 미치지 못할 수 있습니다.
**해결 방법**:
- **프롬프트 최적화**: 요약 요청 시 프롬프트를 최적화하여 더 정확하고 간결한 요약을 얻을 수 있도록 합니다.
- **후처리**: 요약된 내용을 검토하고 필요에 따라 후처리 과정을 추가하여 품질을 높입니다.
- **다중 요약**: 여러 번 요약을 요청하여 가장 적합한 결과를 선택하는 방법을 사용할 수 있습니다.
### 4. SNS API 통합
**어려움**: 각 SNS 플랫폼의 API 통합 시 발생할 수 있는 인증 문제, API 변경, 요청 형식 오류 등 다양한 문제.
**해결 방법**:
- **API 문서 숙지**: 각 플랫폼의 최신 API 문서를 숙지하고, 권장하는 방식으로 통합합니다.
- **오류 처리**: Make.com 시나리오에 오류 처리를 위한 조건부 분기와 재시도 로직을 추가합니다.
- **정기적 점검**: API 변경사항을 주기적으로 확인하고, 시나리오를 업데이트합니다.
### 5. 이메일 응답 대기 및 조건 분기
**어려움**: 이메일 응답을 대기하고, 응답 여부에 따라 다른 작업을 수행하는 조건 분기를 설정하는 것이 복잡할 수 있습니다.
**해결 방법**:
- **이메일 응답 모니터링**: Make.com에서 Email 모듈을 사용하여 특정 조건(예: 제목 또는 내용의 특정 키워드 포함)에 따라 응답을 모니터링합니다.
- **타임아웃 설정**: 일정 시간 내에 응답이 없을 경우, 타임아웃을 설정하여 자동으로 다음 단계로 진행할 수 있도록 합니다.
### 6. SMS 서비스 통합
**어려움**: Twilio 등의 SMS 서비스 API 통합 시 발생할 수 있는 인증 문제 및 요청 형식 오류.
**해결 방법**:
- **API 키 관리**: Twilio API 키를 안전하게 관리하고, Make.com에서 올바르게 설정합니다.
- **요청 형식 검증**: Twilio API 문서를 참조하여 요청 형식을 정확하게 검증하고, 필요한 매개변수를 설정합니다.
- **오류 로그 분석**: 요청 실패 시 반환되는 오류 메시지를 분석하고, 필요한 조치를 취합니다.
### 종합적인 해결 방안
1. **모듈화 및 단계별 테스트**: 각 단계를 모듈화하고, 단계별로 테스트하여 오류를 최소화합니다.
2. **문서화**: 설정 과정 및 각 모듈의 설정값을 문서화하여 문제가 발생할 경우 빠르게 해결할 수 있도록 합니다.
3. **모니터링 및 알림**: 시나리오 실행 중 오류가 발생할 경우 알림을 설정하여 즉시 대응할 수 있도록 합니다.
이러한 방법들을 통해 예상되는 어려움을 효과적으로 해결하고, 자동화 과정을 성공적으로 구현할 수 있습니다.
오 .. 미리 주의해야할 점을 알려주니, 어느정도 예상해서 대비할 수 있겠다고 생각이 들었습니다 🤔🤔
ChatGPT에게 물어보다가, 메일로 sns에 업로드하는 걸 수락할건지, 거절할건지 어떻게 받을 수 있는지가 궁금해져서 추가로 물어보았습니다.
Prompt
요약된 내용을 개인 메일로 확인을 받을 때,
사용자가 수락한건지 거절한건지 응답을 make에서 확인할 수 있어?
Answer
Make.com에서 사용자가 이메일을 통해 보낸 응답이 수락인지 거절인지를 확인하는 방법을 구현할 수 있습니다. 이를 위해서는 이메일 응답을 처리할 수 있는 모듈과 조건부 로직을 설정해야 합니다.
### 구현 방법
### Step 1: Email 모듈 설정
1. **Email 모듈 추가**:
- Make.com에서 Email 모듈을 추가합니다.
- 이메일을 보내는 설정을 합니다. 요약된 내용을 포함한 이메일을 사용자에게 발송합니다.
### Step 2: 이메일 응답 대기 및 확인
1. **Email 응답 모듈 설정**:
- Email 모듈을 사용하여 이메일 응답을 대기합니다. 이는 이메일 계정에서 수신된 이메일을 모니터링하는 방식으로 설정할 수 있습니다.
- 특정 이메일 주소(예: 응답을 받을 이메일 주소)를 모니터링하도록 설정합니다.
2. **응답 분석**:
- 수신된 이메일의 제목 또는 본문에 특정 키워드(예: "수락", "거절")를 포함하도록 사용자를 안내합니다.
- Email 모듈에서 수신된 이메일을 분석하여 특정 키워드가 포함되어 있는지 확인합니다.
### Step 3: 조건부 로직 설정
1. **조건부 분기 설정**:
- 수신된 이메일의 내용을 분석한 결과에 따라 조건부 분기를 설정합니다.
- 예를 들어, 이메일 본문에 "수락"이라는 단어가 포함되어 있으면 다음 단계로 진행하고, "거절"이라는 단어가 포함되어 있으면 다른 로직을 수행합니다.
### 세부 구현 단계
### 1. 이메일 발송
- Make.com에서 Email 모듈을 설정하여 요약된 내용을 사용자에게 보냅니다.
### 2. 이메일 응답 모니터링
- Email 모듈을 설정하여 특정 이메일 주소로 수신된 이메일을 모니터링합니다.
- 필터 조건을 설정하여 제목이나 본문에 특정 키워드가 포함된 이메일만 확인합니다.
### 3. 조건부 분기
- Email 모듈에서 수신된 이메일의 본문을 분석합니다.
- `Filter` 모듈을 사용하여 이메일 본문에 "수락" 또는 "거절"이라는 단어가 포함되어 있는지 확인합니다.
- 조건에 따라 다음 단계를 설정합니다.
### 예시 워크플로우
1. **Email 모듈: 이메일 발송**
- 제목: "요약된 내용 확인 요청"
- 본문: "요약된 내용을 확인해 주세요. 수락하려면 '수락'을, 거절하려면 '거절'을 포함하여 회신해 주세요."
2. **Email 모듈: 응답 대기**
- 모니터링할 이메일 주소를 설정합니다.
- 특정 키워드가 포함된 이메일만 필터링합니다.
3. **Filter 모듈: 응답 분석**
- 조건: 이메일 본문에 "수락" 또는 "거절"이 포함되어 있는지 확인합니다.
4. **조건부 분기**
- "수락"이 포함된 경우: SNS에 업로드하는 모듈로 이동합니다.
- "거절"이 포함된 경우: 관리자에게 알림을 보내거나 다른 대응을 합니다.
### 예시 시나리오 구성
1. **Google Sheets 모듈 -> HTTP 모듈 (YouTube 검색) -> HTTP 모듈 (조회수 및 자막 확인) -> HTTP 모듈 (오디오 추출 및 텍스트 변환) -> HTTP 모듈 (Claude 요약) -> Email 모듈 (요약본 확인 요청) -> Email 모듈 (응답 대기) -> Filter 모듈 (응답 분석) -> 조건부 분기 -> SNS 업로드 모듈 (수락 시) -> 알림 모듈 (거절 시)**
이러한 방식으로 Make.com에서 이메일 응답을 확인하고, 사용자가 수락했는지 거절했는지를 판단하여 다음 단계를 자동으로 진행할 수 있습니다.
수락, 거절에 대한 의사도 인지할 수 있다고 하네요.
ChatGPT로 얻은 답변에는 할루시네이션이 있을 수 있어서, 100% 믿고 있진 않습니다.
제가 얻은 답변으로 실제로 구현이 가능할지, 어떤 어려움이 다가올 지 기대가 됩니다 !!
ChatGPT에게 물어보다 보니 빨리 만들어 보고 싶어졌습니다 !
추후에는 유튜브 뿐만 아니라, 뉴스나 블로그 글까지 확장해나가면 좋을 것 같아요 ~
다음주가 기대됩니다 😊😊
#11기사무자동화