상세 컨텐츠

본문 제목

“YouTube News 자동화” 전체 코드의 핵심 프로세스

Life Story

by [진주제일안경1974] 2025. 5. 7. 00:55

본문

반응형
[진주제일안경1974] 린드버그 안경 AS 전문 특약점

반복되는 수작업에서 진짜 정보 자동화로

내 손으로 만든 유튜브 뉴스 자동화,
그리고 그 뒷이야기


매일 아침이면 유튜브 채널의 새로운 뉴스를 확인하고 보는게 좋아서 시작해서
의미 있는 영상을 골라 요약하고,
이메일과 노션에 정리해 공유하는 일이 어느새 저의 일상이 되었습니다.
처음엔 단순히 정보 공유가 좋아서 시작한 일이었지만,
채널이 늘어나고 영상이 쏟아지면서
이 작업은 점점 큰 부담으로 다가왔습니다.

수작업의 한계, 그리고 자동화의 꿈

처음엔 모든 걸 손으로 했습니다.
유투브 구독채널의 새 영상을 찾고,
중복된 뉴스가 다시 올라오지 않게 체크하고,
하나하나 요약문을 직접 써서 블로그에 정리했습니다.
하지만 어느 순간,
“이렇게 계속 할 수는 없겠다”는 생각이 들었습니다.
시간은 점점 부족해지고,
중복 뉴스, 누락, 실수도 늘어났습니다.
그래서 자동화의 필요성을 절실히 느꼈고,
직접 코드를 짜기 시작했습니다.

유튜브 뉴스 자동화, 나도 할 수 있을까?
시행착오와 도전의 기록

예전부터  자동화를 꼭 해보고 싶었습니다.
그러던 중. 최근 고등학교 동문 단체채팅방에서 한 후배가  
“블로그 자동화 프로그램을 돌린다”는 이야기를 했습니다.  
예전부터 자동화에 관심이 많던 
이 기회에 직접 자동화 시스템을 만들어보기로 결심했습니다.

하지만 막상 시작하려니,
유튜브에서 자동화 관련 영상을 아무리 찾아봐도
쉽게 따라할 수가 없었습니다.

시작부터 막막했던 자동화

영상 속 전문가들은
쉽게 설명한다고 하지만,
막상 따라하려니
어디서부터 뭘 해야 할지
머릿속이 하얘지더군요.
‘이걸 그냥 전문가한테 배우러 가야 하나?’
하는 생각도 들었습니다.

[진주제일안경1974] 린드버그안경 A/S 소모품교환 공식특약점

CHATGPT와 MAKE, 그리고 나의 시행착오

그러다 문득,
왼쪽에는 CHATGPT,
오른쪽에는 MAKE(노코드 자동화 툴) 창을 띄워놓고
작업을 시작했습니다.
스크린캡처로
막힌 부분을 CHATGPT에 붙여넣고
“다음은 어떻게 해?”
“이 오류는 왜 나와?”
하나하나 물어보면서
조금씩, 아주 조금씩
문제를 풀어나갔습니다.

계속되는 오류, 그리고 새로운 길

그런데
“맞다!”고 주는 코드를 그대로 써도
계속 오류가 생겼습니다.
오류가 반복될수록
지치고,
힘들고,
‘나는 왜 안 되지?’
자괴감도 들었습니다.
이 자동화를 만드는 동안,
저는 한 명의 안경사 개발자가 아니라 AI와 협업하는 프로듀서가 되어갔습니다.
처음엔 단순히 "코드 좀 짜줘"라고 말하면 알아서 다 해줄 줄 알았습니다.
하지만 현실은 달랐습니다.
“코드가 왜 중간에서 멈추죠?”
“이 부분 오류 메시지가 이해되지 않아요.”
“이전 영상이 또 나왔어요. 중복 방지 로직 어디 잘못됐나요?”
오류가 나면 스크린샷을 찍어서, 그걸 다시 챗GPT에게 보여주며 대화했습니다.
때로는 오류 로그만 30개가 넘고,
같은 에러가 10번 넘게 반복되면 좌절하기도 했습니다.
그때 ChatGPT는 이렇게 말해주곤 했습니다.

“이전 영상이 포함되는 이유는, 자막을 기준으로 본문을 생성할 때 제목이나 채널명이 영향을 줄 수 있기 때문이에요. 프롬프트에서 영상 링크 기반으로만 요약하도록 변경해보세요.”

“setup 트리거 오류는 인증 권한 이슈일 수 있어요. 스마트폰 말고 노트북에서 먼저 실행해보시겠어요?”


47번의 버전, 그리고 한 줄의 진심

[진주제일안경1974] 린드버그안경 A/S 소모품교환 공식특약점

“이 코드는 ver2.2.47입니다.”
마지막에 AI가 코드를 넘겨줄 때, 저는 웃으며 말했습니다.
“우리, 이거 47번째 버전이야.”
그 숫자는 단순한 횟수가 아니었습니다.
그 안엔 밤새우며 고민한 시간,
팔 목 눈도 아프고

그래도 포기하지 않고
다른 방법을 찾아보다가
GOOGLE APP SCRIPT라는
새로운 도구를 알게 되었습니다.

완전히 새로운 도전, 그리고 성장

GOOGLE APP SCRIPT로
코드를 하나하나 다시 짜기 시작했습니다.
처음엔 또 막막했지만,
이전보다 훨씬 더
 원하는 대로
자동화 로직을 만들 수 있다는 사실에
희망이 생겼습니다.

 

시행착오의 연속, 그리고 API 전환의 결심

처음엔 OPENAI API를 사용해 요약문을 만들었습니다.
하지만 토큰 사용량이 많아질수록
비용 부담도 커지고,
속도와 효율도 아쉬웠습니다.
그래서 더 나은 방법을 찾기 위해
구글의 GEMINI API로 전환했습니다.
새로운 API에 맞춰 프롬프트를 다시 설계하고,
한글 요약, 중복 단어/표현 제거,
점수 평가, 토큰 절약 등
세세한 부분까지 직접 손을 봤습니다.
특히,

  • 중복 뉴스 방지를 위해 News 시트와 Log 시트를 이중으로 체크하고,
  • 토큰 절약을 위해 요약문 길이와 프롬프트를 최적화하며,
  • API 호출 횟수와 비용을 줄이기 위해
  • 꼭 필요한 뉴스만 골라 처리하는 로직을 여러 번 고쳤습니다.

[진주제일안경1974] 린드버그안경 A/S 소모품교환 공식특약점


수십 번의 테스트, 그리고 끝없는 오류와 성장

코드를 만들고,
테스트하고,
에러가 나면 다시 고치고,
노션에 뉴스가 중복되거나,
이메일에 제목이 두 번 나오는 등
작은 문제도 그냥 넘기지 않았습니다.
밤늦게까지
“왜 날짜가 1970-01-01로 나오지?”
“왜 영어가 요약문에 남아있지?”
“왜 같은 뉴스가 또 올라오지?”
고민하고,
구글링하고,
코드를 다시 뜯어고쳤습니다.
사실, 자동화의 길은 생각보다 훨씬 더 험난했습니다.
처음에는 왼쪽에는 CHATGPT, 오른쪽에는 MAKE(노코드 자동화 툴) 창을 띄워놓고
스크린캡처를 CHATGPT에 붙여넣으며
“다음은 어떻게 해야 할까요?”, “이 오류는 왜 나는 걸까요?”
하나하나 물어보면서 문제를 풀어나갔습니다.
하지만 “맞다!”고 받은 코드를 그대로 써도
계속 오류가 반복되었습니다.
오류가 20번을 넘어가자
지치고, 힘들고,
‘나는 왜 안 되는 걸까?’ 하는 자괴감까지 들었습니다.
너무 힘들어서
“이번에도 또 오류가 나면 CHATGPT 한 달 구독 무료로 해주세요!”
라고 농담을 던졌더니
“한 달 구독은 제 권한 밖입니다.”
라는 냉정한 답변만 돌아오더군요.
결국 CHATGPT 구독 기간이 끝나면서
코딩 작업이 완전히 멈춰버렸습니다.
오류가 난 코드를 고칠 방법이 없어
막막함만 남았습니다.


새로운 도구, 그리고 AI의 진짜 차이

포기하지 않고
다른 방법을 찾아보다가
GOOGLE APP SCRIPT라는 새로운 도구를 알게 되었습니다.
다시 한 줄 한 줄 코드를 짜기 시작했습니다.
조금씩, 아주 조금씩
제가 원하는 자동화의 그림이 그려지기 시작했습니다.
코딩 과정에서
CHATGPT GPTS도 써보고,
GEMINI AI도 써보았지만
오류가 반복되고
답변이 반복될 때마다
많이 힘들었습니다.
그러다가 CHATGPT 한 달 구독이 끝나서
코딩 작업이 더 이상 진행되지 않았습니다.
그래서 오류가 난 코드문을 PERPLEXITY AI에 붙여넣고
오류를 잡아달라고 요청해보았습니다.
그러자 금방 오류를 잡아주고,
하나하나씩 필요한 코딩이 순조롭게 잘 이루어졌습니다.
예를 들면
중복 뉴스가 발행되는 문제,
이메일이 중복 발송되는 문제,
노션 API 연결,
게시판 발행과 같은 부분들이
PERPLEXITY AI 덕분에 훨씬 쉽게 해결되었습니다.
이제는
오류 메시지를 복사해 붙여넣기만 하면
정확한 원인과 해결책이 제시되어
마치 전문 개발자가 옆에서
코치를 해주는 것 같은 느낌이 들었습니다.
이 과정을 통해
AI도 모두 똑같지 않다는 사실,
도구 선택의 중요성을
몸소 깨달았습니다.


자동화, 그리고 얻은 감동

이제는

[진주제일안경1974] 린드버그안경 A/S 소모품교환 공식특약점

  • 새 영상을 자동으로 감지하고,
  • Gemini API로 한글 요약을 만들고,
  • 시인성/대중성/정보성 점수를 평가하고,
  • 중복 뉴스는 영구 차단하며,
  • 이메일/노션에 자동으로 발행하는
  • 완벽한 자동화 시스템이 내 손으로 돌아가고 있습니다.

매일 아침
자동으로 정리된 뉴스를 받아볼 때,
직접 만든 코드가
내 시간을 지켜주고,
더 가치 있는 정보 생활을 만들어주고 있다는 사실에
작은 감동과 뿌듯함을 느낍니다.
자동화는 단순한 편리함이 아니라,
내 삶의 시간을 지키고
정보의 가치를 높이는
진짜 변화였습니다.
수십 번의 시행착오와
API 전환,
토큰 절약을 위한 최적화,
그리고 내 손끝의 노력들이
오늘의 자동화를 만들었습니다.


함께 나누는 정보, 그리고 새로운 시작

이제는 누구보다 효율적으로,
더 많은 사람들과
더 좋은 정보를
함께 나눌 수 있게 되었습니다.
자동화에 도전하는 모든 분들께
이 글이 작은 용기와 도움이 되길 바랍니다.
AI도, 사람도
끊임없이 배우고
진화해야 한다는 사실을
이번 경험을 통해 다시 한 번 느꼈습니다.

[진주제일안경1974] 린드버그안경 A/S 소모품교환 공식특약점

 

1. 환경 변수 및 공통 함수 정의

  • 구글 시트, Gemini API, 이메일, Notion API 키 등 환경 변수 설정
  • 날짜/시간 변환, 페이지 ID 포맷 변환 등 자주 쓰는 함수 정의

2. YouTube 영상 ID 추출 함수

  • 유튜브 URL에서 고유 videoId(11자리)를 추출
  • (watch?v=, youtu.be/, embed/ 등 다양한 주소 지원)

3. 중복 방지 함수

  • 이미 News 시트나 Log 시트에 기록된 videoId가 있는지 확인
  • (중복이면 건너뜀)

4. RSS 피드에서 최근 48시간 이내 영상만 추출

  • 각 채널의 RSS 주소에서 새 영상을 읽어옴
  • 48시간 이내 영상만 골라서 처리

5. 종합점수 평가 함수

  • Gemini API에 "시인성/대중성/정보성" 기준으로
  • 10점 만점 평균 점수를 요청
  • 숫자만 받아서 자동 평가

6. Gemini 요약 프롬프트 생성 함수

  • 700자 이내, 인칭대명사/특수문자/영상 관련 단어 금지,
  • 영어·외국어 금지(한글로 변환) 등
  • 요약문 작성 지시문 생성

7. Gemini API 호출 함수

  • 프롬프트를 Gemini API에 보내고
  • 요약문(본문)과 토큰 수를 받아옴

8. 노션에 뉴스별 새 페이지 생성 함수

  • 뉴스마다 Notion 상위 페이지(YouTube News) 아래에
  • 새로운 하위 페이지(게시판) 자동 생성
  • 페이지 제목: “7.4 250525” (점수+발행일)
  • 본문: 제목(heading_2), 요약, 링크(파란색) 순서로 블록 생성

9. 본문 생성 및 News/Log 기록 함수

  • RSS에서 읽은 새 영상을 반복 처리
  • 중복이면 건너뜀, 아니면
    • Gemini로 요약문 생성
    • 종합점수 평가
    • News 시트에 제목/링크/요약/점수/날짜/토큰 등 기록
    • Log 시트에도 처리 결과 기록

10. 이메일/노션 발송 함수

  • News 시트에서 G열(이메일 발송)이 공백/N인 행만 추출
  • 5개씩 묶어서
    • 이메일 본문 생성(제목 중복 자동 제거, 점수+날짜 한 줄, 제목, 요약, 링크 순)
    • 뉴스별로 Notion 새 페이지 생성
    • 발송 후 G열을 "Y"로 변경

11. 트리거 자동 등록 함수

  • processYouTubeRowsByRSS: 7/12/18시 자동 실행
  • sendNewsEmailPending: 7/12/18시 20분 자동 실행
  • sendDailySummaryReport: 20시 자동 실행(일일보고서)
  • cleanupAllSheets: 21시 자동 실행(시트 자동 정리)

12. 일일 종합보고서 메일 함수

  • 하루 동안 처리된 영상/중복/오류/토큰 수 등 요약
  • 이메일로 관리자에게 자동 발송

13. 시트 자동 정리 함수

  • News/Log 시트에서 오래된 데이터 자동 삭제(최근 20일만 유지)

14. 수동 테스트 트리거

  • sendNewsEmailPending 함수를 수동으로 실행할 때 사용

📊 전체 자동화 프로세스 요약

[진주제일안경1974] 린드버그안경 A/S 소모품교환 공식특약점

  1. RSS에서 새 영상 감지
  2. 중복 체크
  3. Gemini로 한글 요약문 생성(영어·외국어 금지)
  4. 종합점수 평가
  5. News/Log 시트 기록
  6. 이메일 본문 생성(제목 중복 제거)
  7. 노션에 뉴스별 새 페이지 생성
  8. 트리거로 자동 반복
  9. 일일 보고서/자동 정리

📌 반복문의 동작 방식(코드 내용 없이 설명)

  1. 데이터 목록(예: 시트의 행들, 영상 리스트 등)을 준비합니다.
  2. 첫 번째 데이터(보통 2번째 행부터, 헤더는 제외)를 선택합니다.
  3. 마지막 데이터까지 한 개씩 순서대로 차례로 선택합니다.
  4. 각 데이터(예: 뉴스, 영상, 행)에 대해 원하는 작업(요약 생성, 점수 평가, 이메일/노션 발송 등)을 처리합니다.
  5. 하나의 데이터 처리가 끝나면 다음 데이터로 넘어갑니다.
  6. 이 과정을 모든 데이터(마지막까지) 반복합니다.

[진주제일안경1974] 린드버그안경 A/S 소모품교환 공식특약점


📝 쉽게 예시로

  • 시트에 10개의 뉴스가 있다면,
  • 1번 뉴스 → 2번 뉴스 → ... → 10번 뉴스
  • 순서대로 하나씩 자동으로 처리합니다.

✅ 정리

  • 처음부터 끝까지, 한 개씩, 빠짐없이, 순서대로
  • 데이터를 처리하는 자동 반복 방식입니다.
[진주제일안경1974] 린드버그 안경 AS 전문 특약점

[진주제일안경1974] 린드버그안경 A/S 소모품교환 공식특약점

진주제일안경은
린드버그 휘팅 조정 전문점으로,
오랜 기간 린드버그 본사에서 정식 트레이닝을 받은 숙련된 전문가가 고객님의 린드버그 안경을 최상의 상태로 조정해드립니다.

섬세한 기술과 정교한 피팅 노하우를 바탕으로, 착용 시 느껴졌던 불편함을 해소하고 최적의 편안함을 제공합니다.
린드버그 안경의 완벽한 핏과 균형을 경험해보세요.


Jinju JeiL Optical Lindberg Fiting Co-ordination Shop,
A skilled professional who has been formally trained at Lindberg headquarters for a long time adjusts your Lindberg glasses to their best condition.
Based on delicate technology and sophisticated fitting know-how, it relieves the inconvenience felt when wearing and provides optimal comfort.
Experience the perfect fit and balance of Lindberg glasses.

#린드버그휘팅 #진주제일안경
#린드버그안경 #LINDBERG #린드버그휘팅
#제일안경원  #린드버그선글라스
#린드버그신상품 #린드버그

반응형

관련글 더보기