본문 바로가기

Python

[python] 유튜브 API를 사용하여 검색 결과 가져오기 (2)

728x90

[python] 유튜브 API를 사용하여 검색 결과 가져오기 (1)과 내용이 이어줍니다. 이전에 작성한 코드에서 더 나아가 flask와 ngrok을 사용하여 API로 배포 및 사용하는 방법에 대해서 알아보겠습니다.

 

from flask import Flask, request, Response
from flask_ngrok import run_with_ngrok
import json

 

필요한 패키지들을 가져와줍니다.

 

app = Flask(__name__)

@app.route('/')
def just_started():
  return "just started"

@app.route('/video_list', methods=['GET', 'POST'])
def get_video_list():
  developer_key =  request.args['key']
  query = request.args['query']
  youtube = build_youtube_search(developer_key)
  search_response = get_search_response(youtube, query)
  res = json.dumps(get_video_info(search_response), ensure_ascii=False)
  return Response(res, content_type='application/json; charset=utf-8')

 

[python] 유튜브 API를 사용하여 검색 결과 가져오기 (1)에서 미리 생성했던 코드들을 불러와 /video_list로 들어갔을 때 실행되게 해 줍니다. 이때 request.args ['<variable name>']은 GET 방식으로 넘겨준 인자들의 값을 가져오는 코드입니다.

 

run_with_ngrok(app)
app.run()

 

위의 코드를 실행시켜 어디서든 접속할 수 있는 url을 만들어줍니다. 아래 그림에서 79ee73e5e054 이 부분의 url을 클릭해서 화면에 "just started"가 보인다면 정상적으로 접속된 것입니다.

 

<public url>

http://79ee73e5e054.ngrok.io/video_list?key=<API KEY>&&query=<search word>

 

위의 코드와 같이 key에는 자신의 유튜브 API 키를 query에는 검색하고 싶은 검색어를 넘어주면 된다. 검색어로 "운동"으로 설정한 결과는 다음과 같습니다.

 

{
  "0": {"videoId": "gMaB-fG4u4g", "title": "전신 다이어트 최고의 운동 [칼소폭 찐 핵핵매운맛]", "description": "이번 영상은 정말! 정말! 맵습니다     사실 운동 영상을 준비할 때 강도를 높이는 것은 그리 어려운 작업이 아닙니다. (스쿼트, 런지, 점핑잭, 버피등 반복..) 그래서 ...", "url": "https://i.ytimg.com/vi/gMaB-fG4u4g/mqdefault.jpg"}, 
  "1": {"videoId": "UJ8Xp2SZ3SE", "title": "팔운동 딱 2가지만 한다면? 왕팔 만드는 운동강의", "description": "구독,좋아요,댓글은 영상제작에 큰 힘이 됩니다! ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 랭킹닭컴 아래링크 타고 회원가입시 (코드 jgtv 입력!) 추가혜택이 ...", "url": "https://i.ytimg.com/vi/UJ8Xp2SZ3SE/mqdefault.jpg"}, 
  "2": {"videoId": "RUTQNo-d_bE", "title": "날개뼈가 튀어나왔다면 운동이 아니라 무조건 스트레칭이 우선입니다 [익상견갑 초간단 해결법]", "description": "익상견갑 #전거근 튀어나온 날개뼈를 고치기 위해 전거근 운동을 하지만 그전에 해야 할 것을 정리해봤습니다. [참고자료] -Scapular winging: anatomical review, ...", "url": "https://i.ytimg.com/vi/RUTQNo-d_bE/mqdefault.jpg"}, 
  "3": {"videoId": "CTojmKLkWTo", "title": "전신 다이어트 최고의 운동 [칼소폭 핵매운맛]", "description": "안녕하세요, Thankyou BUBU 입니다! 사실 칼소폭(칼로리 소모 폭탄 운동) 시리즈는 당시 예전 홈트 영상들에서는 거의 찾아보기 힘들었던, 한 영상만으로 단시간 ...", "url": "https://i.ytimg.com/vi/CTojmKLkWTo/mqdefault.jpg"}, 
  "4": {"videoId": "CkRDw4En_78", "title": "단시간 전신 다이어트 최고의 운동 [칼소폭 찐 핵매운맛]", "description": "이번 영상은 한마디로 정말 맵습니다☠ 기존 '칼소폭 핵매운맛'이 '와~ 맵다' 정도였다면, 이번 '칼소폭 찐 핵매운맛'은 온 몸이 얼얼하게 아리는 정도의 맵기라 할 수 ...", "url": "https://i.ytimg.com/vi/CkRDw4En_78/mqdefault.jpg"}, 
  "5": {"videoId": "4EKo44DUvjg", "title": "살이 너무 빠지는 죽음의 타바타 운동 (no 층간소음) / Beautiful tabata workout", "description": "안녕하세요 에이핏 주인장 라희입니다 :) 블로그에 문의해본 결과 층간소음 걱정은 없고, 강도는 무지하게 높아야 되고, 시간은 너무 길지 않은 유산소 운동을 가장 ...", "url": "https://i.ytimg.com/vi/4EKo44DUvjg/mqdefault.jpg"}, 
  "6": {"videoId": "Dv1cdK8q2_s", "title": "건강한 노년의 시작, 근력운동은 필수!", "description": "한양대학교병원 가정의학과 박훈기 교수가 노년기에 발생하는 근육감소증과 그에 맞춰 필요한 근력운동 및 운동 시 주의사항에 대해 알려드립니다. 하이하이(hihy) ...", "url": "https://i.ytimg.com/vi/Dv1cdK8q2_s/mqdefault.jpg"}, 
  "7": {"videoId": "0L5gAT1fJaM", "title": "뱃살 아랫뱃살 최고의 운동", "description": "'뱃살, 영상 하나로 끝내고 싶다!' 오늘 영상을 만들기 위해 저희 부부가 가졌던 생각입니다. 많은 뱃살 복부 관련 운동들이 있지만 '정말 이것저것 다 귀찮다.", "url": "https://i.ytimg.com/vi/0L5gAT1fJaM/mqdefault.jpg"}, 
  "8": {"videoId": "tiliwVi4tFo", "title": "&quot;기력이 없고 기운이 없다&quot;면 이 음식을 먹으면서 운동하세요~ / #근감소증 예방 # 운동기능저하증후군", "description": "팔팔한 인생 - 운동기능저하증후군 오늘은 운동 기능 저하 증후군 2부로 치료하고 예방하는 방법을 친절하게 알려드리도록 하겠습니다 무료 홈트운동 02-542-2488로 ...", "url": "https://i.ytimg.com/vi/tiliwVi4tFo/mqdefault.jpg"}, 
  "9": {"videoId": "Fu--Q0UCCL0", "title": "운동후 근육통이 있다면 이 영상 꼭 봐주세요.", "description": "운동 #근육통 #건강강의 #이동환 #건강특강 #기업교육 #스트레스해소 #교육하는의사 #명강사 #명강의 가정의학과 전문의, 교육공학 석사, 경영학 박사. (사)한국 ...", "url": "https://i.ytimg.com/vi/Fu--Q0UCCL0/mqdefault.jpg"}
}
728x90