123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- import requests
- import os
- from os.path import expanduser, join
- API_DOMAIN = "http://api.supe.io/"
- API_HEADERS = {
- 'User-Agent': 'okhttp/3.6.0',
- 'Platform-Name': 'Android 8.0.0',
- 'Application-Version': '1.1.2',
- 'Device-Name': 'OnePlus ONEPLUS A0001',
- 'Authorization': 'Bearer {}'.format(os.environ['SUPE_TOKEN']),
- 'Accept': 'application/vnd.api.v3+json',
- 'Content-Type': 'application/json'
- }
- # Standard code for making request \o/
- def request(endpoint, data={}, headers={}, method='POST'):
- headers.update(API_HEADERS)
- r = requests.request(method, API_DOMAIN+endpoint, data=data, headers=headers)
- if r.status_code == 200:
- return r.json()
- return None
- def download(media_url, cwd=expanduser("~")):
- filename = media_url.split("/")[-1]
- file_path = join(cwd, filename)
- if not os.path.isfile(file_path):
- r = requests.get(media_url, stream=True)
- if r.status_code == 403:
- raise Exception("Access Denied")
- with open(file_path, 'wb') as fh:
- for chunk in r.iter_content(chunk_size=1024):
- fh.write(chunk)
- def get_pubblishers():
- obj = request("me/inbox/publishers?type=broadcast", method='GET')
- users = obj['_embedded']['items']
- for user in users:
- print(user['id'],user['username'])
- profile_pic = user['_embedded']['profileAsset']['filename']
- cwd = join("./media",str(user['username']))
- if not os.path.isdir(cwd):
- os.mkdir(cwd)
- download(profile_pic, cwd=cwd)
- get_pubblisher_video(user['id'], cwd)
- def get_pubblisher_video(pub_id, cwd):
- obj = request("me/inbox/publisher/{}?type=broadcast".format(pub_id), method='GET')
- posts = obj['_embedded']['items']
- for post in posts:
- print(post['id'],post['type'])
- media = post['_embedded']['asset']['filename']
- if not os.path.isdir(cwd):
- os.mkdir(cwd)
- print("Downloading {}".format(post['_embedded']['asset']['type']))
- download(media, cwd=cwd)
- get_pubblishers()
|