Получите URL клипа Twitch с определенного канала, используя Python - PullRequest
0 голосов
/ 31 октября 2018

Я хочу получить список URL-адресов клипов из определенного канала Twitch с использованием Python.

Почти так же, как ответ, приведенный в этом посте: Как получить все ссылки или клипы с определенного канала на Twitch в Python?

Я уже пытался адаптировать код в вышеупомянутом посте, читая и сравнивая ответы JSON от того, из чего был получен ответ и что я хочу сделать, но я совсем не знаком с JSON, и он не получает URL.

Вот запрос, который я произвел:

json_req = """[{"query":"query ClipsCards__User($displayName: String!, 
$limit: Int, $criteria: GameClipsInput) { user(login: $displayName) { id 
clips(first: $limit, criteria: $criteria) { pageInfo { hasNextPage 
__typename } edges { cursor node { id slug url embedURL title viewCount 
language curator { id login displayName __typename } game { id name 
boxArtURL(width: 52, height: 72) __typename } broadcaster { id login 
displayName __typename } thumbnailURL createdAt durationSeconds __typename } 
__typename } __typename } __typename } } ","variables": 
{"displayName":"empressyenni","limit":100,"criteria": 
{"filter":"LAST_DAY"}},"operationName":"ClipsCards__User"}]"""

r = requests.post(url, data=json_req, headers={"client- 
id":"kimne78kx3ncx6brgo4mv6wki5h1ko"})
r_json = r.json()

edges = r_json[0]['data']['user']['clips']['edges']
urls = [edge['node']['url'] for edge in edges]

for url in urls:
    print(url)

Это код, который работает, но предназначен для игровой категории, а не для одного канала:

json_req = """[{"query":"query ClipsCards__Game($gameName: String!, $limit: 
Int, $cursor: Cursor, $criteria: GameClipsInput) { game(name: $gameName) { 
id clips(first: $limit, after: $cursor, criteria: $criteria) { pageInfo { 
hasNextPage __typename } edges { cursor node { id slug url embedURL title 
viewCount language curator { id login displayName __typename } game { id 
name boxArtURL(width: 52, height: 72) __typename } broadcaster { id login 
displayName __typename } thumbnailURL createdAt durationSeconds __typename } 
__typename } __typename } __typename } } ","variables":{"gameName":"League 
of Legends","limit":100,"criteria":{"languages":[],"filter":"LAST_DAY"}
,"cursor":"MjA="},"operationName":"ClipsCards__Game"}]"""

r = requests.post(url, data=json_req, headers={"client- 
id":"kimne78kx3ncx6brgo4mv6wki5h1ko"})
r_json = r.json()

edges = r_json[0]['data']['user']['clips']['edges']
urls = [edge['node']['url'] for edge in edges]

for url in urls:
    print(url)
...