youtube API 사용해보기
개요 조금 시간이 지났지만 Twitch라는 스트리밍 사이트의 화질이 안좋아지고 나서 몇몇 인터넷 방송인들이 youtube와 twitch를 동시방영을 하는 경우가 생기기 시작한 시점에서 youtube에서 화질이 좋
history-store.tistory.com
이전 포스팅에서 조사했던것 처럼 Twitch의 채팅을 끌어오고 싶은 마음에 Twitch API를 이용하여서 해당 문제를 해결하고 싶어서 간단한 조사를 해보았다.
Twitch API
Twitch API
dev.twitch.tv
해당 페이지가 Twitch API의 문서 페이지이다.
채팅을 불러오는 방법은 생각보다는 간단하게 흘러갔다.
인덱스에
Embedding Chat
을 치고 들어가면
<iframe src="https://www.twitch.tv/embed/<channel>/chat?parent=<parent>"
height="<height>"
width="<width>">
</iframe>
으로 간단하게 표현 가능하게 되어 있다.
매개변수에 대해서는 위와 같이 설정되어져 있다.
channel의 이름은 흔히 방송 채널로 들어가면 주소를 보면 알수 있는 닉네임을 가리킨다.
보통 twitch.tv/<채널명> 으로 구성되어 있다.
하지만 일일이 유저가 트위치로 가서 찾는것은 이상하다고 생각하여서 알수 있는 방법이 없을까 조사를 해보니
Twitch API Reference
가 있어서 살펴보니
Search Channels
라는 기능을 사용하면 트위치에서 검색 기능과 같은 기능을 사용할수 있어서 해당기능을 사용하고자 합니다.
레퍼런스를 살펴보면 사용 방법은
curl -X GET 'https://api.twitch.tv/helix/search/channels?query=loserfruit' \
-H 'Authorization: Bearer 2gbdx6oar67tqtcmt49t3wpcgycthx' \
-H 'Client-Id: wbmytr93xzw8zbg0p1izqyzzc5mbiz'
의 데이터를 보내면 결과로
{
"data": [
{
"broadcaster_language": "en",
"broadcaster_login": "loserfruit",
"display_name": "Loserfruit",
"game_id": "498000",
"game_name": "House Flipper",
"id": "41245072",
"is_live": false,
"tag_ids": [],
"tags": [],
"thumbnail_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/fd17325a-7dc2-46c6-8617-e90ec259501c-profile_image-300x300.png",
"title": "loserfruit",
"started_at": ""
},
...
],
"pagination": {
"cursor": "Mg=="
}
}
의 데이터가 응답한다고 한다
여기서 의문이 인증과 클라이언트 id인데
클라이언트 id 의 경우는 twitch developers에 로그인을 한뒤에
오른쪽 위의 Yout Console을 클릭해서 들어가보면
와 같은 창이 나오는데 응용 프로그램을 등록을 한뒤에 관리버튼으로 들어가면 클라이언트 아이디를 확인할수 있다.
인증의 경우에는
의 마지막을 선택해 들어가서 보면
인증을 얻는 방식의 예제를 살펴보면
curl -X POST 'https://id.twitch.tv/oauth2/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'client_id=<your client id goes here>&client_secret=<your client secret goes here>&grant_type=client_credentials'
으로 통신을 하게 되면
{
"access_token": "jostpf5q0puzmxmkba9iyug38kjtg",
"expires_in": 5011271,
"token_type": "bearer"
}
의 데이터를 받아서 엑세스 토큰을 구할수 있다.
그런데 여기서도 알수 없는게 하나 존재하는데 그것은 클라이언트 시크릿이라는 것인데
그것은 위의 콘솔 페이지로 들어가서
등록한 응용 프로그램에 들어가면 클라이언트 시크릿을 생성하는 것이 가능해진다.
가볍게 postman으로 토큰을 얻고 스트리머 류제홍을 검색을 하게 되면
여러 검색결과가 나오지만
{
"data": [
{
"broadcaster_language": "ko",
"broadcaster_login": "wpghd321",
"display_name": "류제홍_",
"game_id": "21779",
"game_name": "League of Legends",
"id": "128035304",
"is_live": false,
"tag_ids": [],
"tags": [
"한국어"
],
"thumbnail_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/adb62723-be04-4b89-bae9-15c8ac9ecf54-profile_image-300x300.png",
"title": "야심한새벽",
"started_at": ""
},
와 같이 broadcaster_login으로 아이디를 확인 할 수 있다.
'토이프로젝트' 카테고리의 다른 글
토이프로젝트 - PIViewer(4) backend (0) | 2023.11.27 |
---|---|
토이프로젝트 - PIViewer(3) (0) | 2023.11.12 |
토이프로젝트 - PIViewer(2) (0) | 2023.11.10 |
토이프로젝트 - PIViewer(1) (0) | 2023.11.10 |
youtube API 사용해보기 (0) | 2023.10.30 |