

유튜브에서 레시피 검색하다가 한 번 만들어볼까? 하고 만들어본 프로그램입니다
가끔 쇼츠 보다가 어 저런 레시피 나중에 한 번 해볼까? 할 때
그냥 영상을 통째로 저장 했었는데 이게 정리가 안되서 좀 불편하더라고요
영상 내용 레시피 수동으로 옮겨적어서 영상이랑 따로 저장하는 것도 정리가 안되기도 하고 귀찮기도 하고요
그래서 그냥 도커 컨테이너 웹앱으로 만들어 봤습니다
v0.3.0 업데이트 내역
https://svrforum.com/software/2538717
관리자 계정 및 로그인 기능 추가
계정 별로 레시피를 관리 할 수 있습니다
계정 설정에서 각 사용자들은 본인의 API키와 모델을 관리할 수 있습니다
관리자 메뉴에 전체 DB 백업 기능 및 사용자 관리 기능 추가
확장 프로그램 사용 가능
이전 업데이트 내역
v0.2.1
https://svrforum.com/software/2532190
카테고리 일괄 선택 및 수정, 이동, 삭제 기능 추가
카테고리 변경 UI 최적화
저장 된 레시피 UI 최적화
확장 프로그램 지원
v0.2
검색 기록 추가 (쿼터 소비 없이 기존 내역 확인 가능)
내보내기한 엑셀 파일로 DB복원 기능 추가
환경 변수에서 검색 결과 개수 설정 가능
(쿼터 소비는 100으로 동일하지만 개수가 많아지면 속도가 느려질 수 있음)
레시피 저장 또는 수정 시 카테고리가 존재하면 목록에 표시 및 선택 가능
제미나이 모델 지정 가능

유튜브 데이터 API를 이용해서 유튜브에서 해당 메뉴를 검색 하고

설정한 최대 개수 이하의 결과값을 뽑아 줍니다
v0.3.0 에서 사용자 계정 설정을 통해 출력 되는 최대 결과 값을 정할 수 있습니다
자막이 없는 경우 결과값에서 제외되기 때문에 설정한 값보다 적은 결과값이 표시될 수 있습니다
해당 메뉴를 뽑을 때 기준은 아직 안정했는데 조회수나 구독자수 같은 수치를 기준으로 뽑을 수도 있을 거 같네요

유튜브 링크를 누르면 해당 유튜브로 가서 확인을 할 수 있습니다

레시피 생성 버튼을 누르면 제미나이 API를 통해 영상의 자막을 분석하고

레시피를 정리 해줍니다

카테고리를 지정하고 저장을 하면

레시피 db에 저장이 됩니다

v0.2.1 ui 수정
검색 기능도 있고 해당 레시피를 펼치면 수정 삭제 버튼이 나옵니다
레시피에는 영상 링크도 함께 저장이 돼있습니다
지금은 제목 검색만 되지만 나중에는 재료 검색이나 재료들을 입력해서
만들 수 있는 레시피를 보여준다거나 하는 기능을 추가할 수 있을 거 같습니다


저장 된 레시피를 엑셀로 출력 하거나 출력한 엑셀 파일로 DB 복원이 가능합니다

생성 된 카테고리는 변경이 가능하고 저장 된 레시피를 선택해 일괄 이동 할 수도 있습니다
모두 선택 하거나 카테고리 별 또는 개별 선택이 가능 합니다

수정 버튼을 누르면 저장한 레시피를 수정 할 수 있습니다

v0.2 추가 – 최근 검색 기록 버튼을 누르면 이전에 검색 했던 결과 목록들이 나옵니다 해당 목록은 삭제 가능하고요

해당 목록을 누르면 쿼터 소비 없이 검색 결과창을 다시 확인 가능 합니다

시놀로지 파일 스테이션에서 docker/ai-recipe-extractor 폴더(원하는 폴더) 생성 후
.env 파일과 data 폴더를 생성 해 줍니다
.env 파일을 작성 합니다
암호화키를 추가하시고 회원 가입 기능 사용 여부를 설정 해주세요
처음 가입한 계정이 admin 권한을 갖게 됩니다
v0.3.0 부터는 API 키와 모델 설정을 각 사용자의 계정 설정 페이지에서 진행 합니다
2.5 flash lite preview 모델은 분당15회 일일 1000회로 사용량이 가장 넉넉합니다만 모델명이 바뀌거나 사라질 수 있습니다
2.5 flash 모델은 분당 10회 일일 250회로 넉넉하진 않지만 조리 방법이 다른 모델에 비해 자세합니다
분당 10회 이게 좀 애매하긴 한데 어차피 로딩 속도나 이것저것 고려하면 분당 10회 괜찮은 거 같기도 하고
일일 250회도 하루 날잡아서 레시피 모으는 거 아니고 그냥 일반적인 사용 패턴이면 나쁘지 않은 거 같네요
각 모델 무료 티어 사용량 및 퀄 비교 정보는 게시글 하단에 있습니다

Get API key | Google AI Studio
구글 AI 스튜디오의 API 옵션으로 가셔서 우측 상단 API 키 생성을 누르시면 이렇게 화면이 뜹니다
만약 Google Cloud 에 프로젝트가 없다면 자동 생성 됩니다

제미나이 API 키 생성이 완료되면 하단에 이렇게 표시가 되는데요
프로젝트 이름을 클릭해서 이동 합니다

그럼 이런 화면으로 오게 되는데 가운데 생성한 api 키가 보입니다

클릭 하셔서 키 제한 부분을 보시면 API 1개 라고 돼있습니다
제미나이 API만 사용 가능한 키라는 의미 인데요
저희는 유튜브 데이터 API도 사용 해야하니 추가를 해줘야 합니다
좌측 메뉴의 라이브러리를 클릭 합니다

라이브러리 화면에서 youtube 로 검색을 하시면

목록 중에 youtube data api v3 라고 보입니다
선택

이렇게 나오면 유튜브 데이터 API를 클릭

사용을 눌러 줍니다

완료가 되면 이런 창이 표시 됩니다
이제 유튜브 데이터 API의 할당량이나 이런저런 정보를 확인 및 관리가 가능하죠

죄측 상단의 사용 설정된 API 및 서비스를 눌러서 하단을 확인하면
두 개의 API가 보이실 겁니다 확인 하시고
만약 안보인다면 과정을 다시 진행 해주세요

다시 좌측의 사용자 인증 정보를 눌러서 아까 봤던 화면으로 돌아와 API 키를 선택 해줍니다

그럼 아까 API 1개 라고 표시됐었던 내용과 다르게 키 제한 아래 선택하라고 뜨죠

둘 다 선택을 해줍니다

그리고 확인 저장 눌러 주시고요
API 키 발급이 끝났습니다
설정이 적용 되는데 최대 5분 걸릴 수 있다고 하니 기다렸다 진행 하시면 됩니다

위 과정을 통해 생성한 API키는 별다른 추가 설정 없이 잘 동작 합니다
API 무료 할당량을 다 사용 했다면 모델을 변경하거나 다른 계정의 API 키로 변경해서 사용하는 방법이 있겠습니다
API 키를 삭제 후 새로 생성 하는 경우 프로젝트 이름을 눌러 구글 클라우드 페이지로 가서
유튜브 데이터 API 권한을 추가하는 작업을 다시 해주세요

유튜브 데이터 API는 이미 사용으로 돼있으니 API 1개 부분에서 추가 선택만 해주면 됩니다
그 후 확인 저장 5분 대기
컨테이너 매니저에서 프로젝트 생성 후 위에서 생성한 폴더 지정 후 위의 코드로 생성 해줍니다
테스트 해보니 아직까지는 별 문제가 없긴 합니다만 이것저것 추가나 수정을 좀 해봐야겠네요


사용하는 API는 유튜브 데이터 API와 제미나이 API인데 하루에 몇 개 정도 만드는 거라면 무료 범위에서 사용 가능할 거 같습니다
API 제한이 넉넉한 편이 아니라 맘 놓고 쓰기에는 좀 무리가 있을 거 같네요
그냥 제미나이 API 말고 앱이나 웹에서 링크 주고 정리 해달라고 하는게 맘편하긴 합니다만 정리가 귀찮아서 만들어 봤습니다
n8n 같은 것들이나 다른 방법을 통해서도 구현이 가능할 거 같습니다만 역시나 귀찮아서 그냥 도커 컨테이너로….
유튜브 데이터 API는 하루 100번 정도 검색 할 수 있는데 초과 됐을 때는 검색 기능을 사용할 수가 없네요
캐시 설정을 통해서 동일 검색 같은 경우 토큰을 절약할 수는 있겠지만 의미가 있나 싶습니다

제미나이 API는 modles/gemini-2.5-flash-lite-preview-06-17 분당 15회 일일 1000회
언제 사라질지 모르지만 지금은 이게 사용량이 가장 넉넉합니다
models/gemini-2.5-flash 분당 10회 일일 250회 – 기본 설정 모델
분당 10회가 좀 적긴 하지만 사실 10회나 15회나 비슷하긴 합니다
하루 250회는 가끔씩 사용하기에는 충분합니다만 왠지 좀 아쉽네요
gemini-1.5-flash-latest 기준 분당 15회 일일 50회
models/gemini-2.0-flash-lite 가 분당 30회 일일 200회
분당 30회로 가장 많긴 한데 퀄이 좀 떨어지더라고요
라이트 아닌 그냥 2.0-flash 버전도 퀄이 좀 떨어집니다
무료 사용량 다 쓰면 모델을 변경해서 사용하는 것도 방법이겠습니다
1.5 flash vs 2.0 flash 퀄 비교
원본 영상

2.5 flash lite preview

2.5 flash

1.5 flash

2.0 flash

2.0 flash lite
원본 자막 보시면 영상 35초 부분에 화유를 소개하고
40초 부분에 화유 2스푼 넣으라는 부분이 있는데
유튜브 자막은 자동생성 자막인지 영상에 표시되는 자막과 다르게
화유가 화요 라고 나와있더라고요
2.5 flash와 1.5 flash는 화요를 무시하고 화유로 저장하고
2.0 flash는 화유랑 화요를 개별로 인식 해서 저장을 하네요
2.0 flash 퀄이 좀 떨어지는 거 말고 나머지 2.5나 1.5는 비슷 한 거 같습니다


위 – 2.5 flash / 아래 – 2.5 flash lite preview
라이트 프리뷰 모델이 언제 사라질지 모르지만 지금은 가장 넉넉하고
1분에 10개씩 만들지 않는 이상 2.5 flash 분당 10회 일일 250회도 충분할 거 같습니다
2.5 flash 모델이 조리 방법이 가장 자세하네요
대략 한 번에 5~600 토큰 사용하는 거 같습니다
2.5 flash 기준 분당 10회 일일 250회
2.5 flash lite preview 기준 분당 15회 일일 1000회
넉넉한건 아니지만 그래도 혼자 사용하기에는 충분할 거 같습니다
그냥 호기심으로 시작해서 만들어 봤는데 다른 부분에도 응용을 좀 해봐야겠습니다
크롬이나 엣지 확장 프로그램을 만들거나
디코나 텔레그램을 통해 영상 주소를 보내서
레시피를 추출하는 기능 같은 것들을 추가할 수 있겠네요
나중에는 오픈AI API랑 연동이 되게 수정을 해서 오픈AI API키를 이용하거나
LM스튜디오나 올라마를 통해 LLM모델도 선택 사용할 수 있게 수정을 해봐야겠습니다
sruinz/AI-Recipe-Extractor: AI 레시피 추출기의 크롬, 엣지 확장 프로그램 입니다
AI 레시피 추출기 – Microsoft Edge Addons
깃허브, 엣지 스토어 및 크롬 스토어에 업로드 됐습니다 편한 방법으로 설치하시면 됩니다
깃헙 설치 방법

깃허브에서 확장 프로그램을 다운로드 ZIP 으로 다운 받으시고 적당한 곳에 압축을 풀어 줍니다
크롬이나 엣지에서 확장 프로그램 관리 – 압축 풀린 파일 로드 선택 후 해당 폴더를 선택 하시면 됩니다
위의 메뉴가 없는 경우

개발자 모드를 켜주세요

제대로 로딩이 되면 하단 기타 출처에 추가가 됩니다

설치 후 확장 프로그램 옵션 창에 AI 레시피 추출기 주소를 입력 해주시면 됩니다

영상 우클릭 후 AI 레시피 추출하기를 누르면

로딩 페이지가 표시되고 로딩이 끝나면

레시피 저장 페이지가 표시 됩니다
끝


