์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ์๋ฐํ๋ก๊ทธ๋๋ฐ
- serverless
- ์๋๋ก์ด๋ ์คํ๋์ค
- ํ์ด์ฌ๊ณต๋ถ
- java
- JavaScript
- Streamlit๊ธฐ๋ณธ
- ์๋ฐ๊ณต๋ถ
- ํ๋ค์ค
- ์๋ฐ๊ธฐ์ด
- db
- ์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ
- Flutter
- ํ๋ค์ค๊ณต๋ถ
- MySQL
- Pandas
- ์คํธ๋ฆผ๋ฆฟ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์๋ฐ์ด๋ณด
- streamlit
- Android
- ์น๋์๋ณด๋ ๊ธฐ์ด
- ํ์ด์ฌ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์น๋์๋ณด๋ ์ ์
- ์๋ฐ
- RESTful API
- ์คํธ๋ฆผ๋ฆฟ ๊ธฐ๋ณธ
- ์๋ฐ์คํฌ๋ฆฝํธ ๊ณต๋ถ
- Streamlit๊ธฐ์ด
- Today
- Total
ruriruriya
[Open API] Youtube - ์ ํ๋ธ ๊ฒ์ API ํฌ์คํธ๋งจ์ผ๋ก ์์ฒญํ์ฌ ์๋ต๋ฐ๊ธฐ ํ ์คํธ (YouTube Data API v3) ๋ณธ๋ฌธ
[Open API] Youtube - ์ ํ๋ธ ๊ฒ์ API ํฌ์คํธ๋งจ์ผ๋ก ์์ฒญํ์ฌ ์๋ต๋ฐ๊ธฐ ํ ์คํธ (YouTube Data API v3)
๋ฃจ๋ฆฌ์ผใ 2024. 2. 12. 23:46
์ ํ๋ธ ๊ฒ์ API๋ฅผ ์ฌ์ฉํ๋ฉด ์ข๋ ๋ค์ํ ์๋น์ค๋ฅผ ๋ง๋ค ์ ์๋ค.
ํฌ์คํธ๋งจ์ ํ์ฉํด์ ์ ํ๋ธ ๊ฒ์ API์ ํ
์คํธ ํด๋ณด์.
1. API ํค ์ป๊ธฐ
๋จผ์ Google Cloud Platform์์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ ์ ํ๋ธ Data API๋ฅผ ํ์ฑํํ๊ณ API ํค๋ฅผ ์ป์ด์ผ ํ๋ค.
API ํค๋ API ์์ฒญ์ ๋ณด๋ผ ๋ ์ธ์ฆ์ ์ํด ํ์ํ๋ค.
https://console.cloud.google.com/
- ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ธฐ
- ํ๋ก์ ํธ ์ ํ ํ API ๋ฐ ์๋น์ค - ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- youtube ๊ฒ์ํ์ฌ YouTube Data API v3 ์ ํ
- API ์ฌ์ฉํด๋ณด๊ธฐ ํด๋ฆญํ์ฌ ์๋ ๋ํผ๋ฐ์ค ํ์ธ.
https://developers.google.com/youtube/v3/docs?apix=true&hl=ko
2. ํฌ์คํธ๋งจ ์ค์น
ํฌ์คํธ๋งจ์ API ๊ฐ๋ฐ ๋ฐ ํ ์คํธ๋ฅผ ์ํ ๋๊ตฌ๋ก ์ฌ์ฉ์ ์นํ์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ํตํด HTTP ์์ฒญ์ ๋ง๋ค๊ณ ํ ์คํธํ ์ ์์ผ๋ฉฐ, ๋ค์ํ ํ๊ฒฝ์์์ API ์์ ์ ๊ฐํธํ๊ฒ ์ํํ ์ ์๋ค. ๋ํ, ์ปฌ๋ ์ ๊ณผ ํ๊ฒฝ์ ํตํด ์์ฒญ์ ๊ตฌ์ฑํ๊ณ ๊ด๋ฆฌํ ์ ์์ด ํ ์์ ์๋ ์ ์ฉํด์ ๋ง์ด ์ถ์ฒํ๊ณ ์ฌ์ฉํ๋ค.
์๋์์ ๋ค์ด๋ฐ์์ ํ์๊ฐ์ ํ ๋ฐ์คํฌํ์ฉ์ ์ค์นํ๋ค.(๋ฐฉ๋ฒ์ ์๋ต)
https://www.postman.com/downloads/
3. ์์ฒญ ์ค์
- HTTP ๋ฉ์๋๋ ์ ํ๋ธ ๊ฒ์ API๋ GET ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ณ
- ์์ฒญ URL์ ์ ํ๋ธ ๊ฒ์ API์ ์๋ํฌ์ธํธ์ธ " https://www.googleapis.com/youtube/v3/search "์ ์ฌ์ฉํ๋ค.
- ๊ทธ ๋ค์ Params์ ์ฟผ๋ฆฌ์ key์ value๋ฅผ ์์ฑํ๋๋ฐ ํ์ ํ๋ผ๋ฏธํฐ๋ key์ q(๊ฒ์์ด) ์ด๋ค.
- ์์ ์ค์ ์ด ๋ค ๋์์ผ๋ฉด q= ๋ค์ ๊ฒ์์ด๋ฅผ ๋ฃ์ด "Send"๋ฅผ ํด๋ฆญํ๋ค.
[ํ์ ํ๋ผ๋ฏธํฐ]
- q (๊ฒ์์ด): ๊ฒ์ํ ํค์๋๋ ๋ฌธ๊ตฌ๋ฅผ ์ง์ ํ๋ค. ์ด ํ๋ผ๋ฏธํฐ๋ ํ์์ด๋ฉฐ, API๋ฅผ ํตํด ๊ฒ์ํ ๋ด์ฉ์ ์ ์ํ๋ค.
- key (API ํค): API ํค๋ Google Cloud Platform์์ ์์ฑํ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆ์ ์ฒ๋ฆฌํ๋ค. ์ด ํ๋ผ๋ฏธํฐ ๋ํ ํ์๋ก ์ ๊ณต๋์ด์ผ ํ๋ค.
[์ ํ ํ๋ผ๋ฏธํฐ]
- part: ์๋ต์ผ๋ก ๋ฐ๊ณ ์ ํ๋ ๋ฆฌ์์ค์ ๋ถ๋ถ์ ์ง์ ํ๋ค. ์๋ฅผ ๋ค์ด, "snippet", "id", "contentDetails" ๋ฑ์ ์ง์ ํ ์ ์๋ค. ๊ธฐ๋ณธ๊ฐ์ "snippet"์ด๋ค.
- maxResults: ํ ํ์ด์ง์ ํ์ํ ๊ฒ์ ๊ฒฐ๊ณผ์ ์ต๋ ๊ฐ์๋ฅผ ์ง์ ํ๋ค. ๊ธฐ๋ณธ๊ฐ์ 5์ด๋ฉฐ, ์ต๋ 50๊น์ง ์ง์ ํ ์ ์๋ค.
- type: ๊ฒ์ ๊ฒฐ๊ณผ๋ก ๋ฐ๊ณ ์ ํ๋ ์ ํ์ ์ง์ ๋ค. ์๋ฅผ ๋ค์ด, "video", "channel", "playlist" ๋ฑ์ด ์๋ค.
- order: ๊ฒ์ ๊ฒฐ๊ณผ์ ์ ๋ ฌ ์์๋ฅผ ์ง์ ๋ค. "date", "rating", "relevance", "title", "videoCount" ๋ฑ์ ์ฌ์ฉํ ์ ์๋ค.
- regionCode: ๊ฒ์์ ์ํํ ์ง์ญ์ ์ฝ๋๋ฅผ ์ง์ ๋ค. ์ด๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์ง์ญ์์์ ์ธ๊ธฐ ์๋ ๋์์์ ๊ฒ์ํ ์ ์๋ค.
- videoDuration: ๋์์์ ๊ธธ์ด๋ฅผ ์ง์ ํ์ฌ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ํํฐ๋งํ ์ ์๋ค. "any", "long", "medium", "short" ๋ฑ์ ์ฌ์ฉํ ์ ์๋ค.
- publishedAfter / publishedBefore: ๊ฒ์ ๊ฒฐ๊ณผ๋ก ๋ฐ๊ณ ์ ํ๋ ๋์์์ ์ถ์์ผ์ ์ง์ ํ๋ค.
3. ์๋ต ํ์ธ
์ ํ๋ธ ๊ฒ์ API๋ก๋ถํฐ์ ์์ฒญ์ด ์ฑ๊ณต์ ์ด๋ฉด ์๋ต์ ํ์ธํ๋ค.
์ด ์๋ต์๋ ๊ฒ์ ๊ฒฐ๊ณผ์ ๊ด๋ จ๋ ์ ๋ณด๊ฐ ํฌํจ๋์ด JSON ๋ฐ์ดํฐ ํ์์ผ๋ก ๋ณด์ฌ์ค๋ค.