✨1. api 찾기
치지직 방송에 들어가서 F12 -> Network로 들어가 F5를 통해 페이지를 다시불러온다.
그중 라이브를 확인해주것에 해당되는 JSON 파일을 찾았다.
이를 통해 치지직 라이브여부를 확인해주는 api를 찾았다.
https://api.chzzk.naver.com/service/v1/channels/ + 치지직방송인 고유번호
✨2. json 분석
"code":200,
"message":null,
"content":{
"channelId":"45e71a76e949e16a34764deb962f9d9f",
"channelName":"아야츠노 유니",
"channelImageUrl":"https://nng-phinf.pstatic.net/MjAyNDAyMDdfMTkw/MDAxNzA3MzE0NzkyMzMx.s-_Q--LS107xo8g01yNj99EYbHIu4N8npYPM-HS45hQg.V2yuxTRUrNemxGu7Z-np1YhwyPWzuMqvNXZ1cyQDhyQg.PNG/%EC%9C%A0%EB%8B%883.png",
"verifiedMark":true,
"channelType":"STREAMING",
"channelDescription":"",
"followerCount":131650,
"openLive":false,
"subscriptionAvailability":true,
"subscriptionPaymentAvailability":{
"iapAvailability":false,
"iabAvailability":false
}
}
}
content 요소의 openLive 값이 라이브 여부를 확인하는 값임을 확인했다.
✨3. 코드 작성
import requests
import json
import time
import asyncio
headers = {'User-Agent': 'Mozilla/5.0'}
user='45e71a76e949e16a34764deb962f9d9f'#아야츠노 유니
url='https://api.chzzk.naver.com/service/v1/channels/'+user
async def checking():
last_check=0
check=0
while True:
print("탐색")
r= requests.get(url,headers=headers)
if(r.json()['content']['openLive'] == True): check= 1
else: check=0
if check != last_check:
if check == 0: print("방송 오프~")
else: print("방송 온")
last_check=check
await asyncio.sleep(3)
asyncio.run(checking())
3초마다 방송여부를 확인하여 방송상태가 변화시 출력해주는 코드를 작성하였다.
'Language > Python' 카테고리의 다른 글
[Python] 말버릇 분석 프로그램 만들기 계획 (0) | 2024.05.09 |
---|---|
[Python] 리스트 컴프리헨션(Comprehension) (0) | 2024.04.05 |
[PYTHON] 라이엇 api로 롤 데이터얻기 (2) | 2024.03.13 |