1) Отправляем post запрос по адресу
https://node03.steamworkshopdownloader.io/prod/api/download/request
со следующими данными
{"publishedFileId":207294,"collectionId":null,"hidden":false,"downloadFormat":"raw","autodownload":false}
, заменяем цифры на нужный id файла.
2) Получаем в ответ json и берем из него uuid.
3) Формируем следующий json
{"uuids":["3a5a8952-7acb-4db2-b99d-ae876e74d79a"]}
, только uuid подставляем из предыдущего ответа.
4)
Обязательно делаем задержку в одну секунду, иначе на второй запрос в json будет пустой путь к файлу!
5) Сформированный нами json отправляем post запросом на адрес -
https://node03.steamworkshopdownloader.io/prod/api/download/status)
В ответ нам придет примерно следующий json:
{'00e3e77d-9a4b-47da-b71f-d8046b65e5dd': {'age': 54, 'status': 'prepared', 'progress': 100, 'progressText': 'prepared!',
# 'downloadError': '', 'bytes_size': 0, 'bytes_transmitted': 0, 'storageNode': 'node03.steamworkshopdownloader.io', 'storagePath':
# '255710/2072941533/1588352120/2072941533_half_timbered_lr_02.raw.download.zip'}}
Нам нужно выдрать storagePath для формирования прямой ссылки на файл.
6) Формируем ссылку следующем образом:
https://node03.steamworkshopdownloader.io/prod//storage/+storagePath+?uuid=+uuid
Должна получится примерно следующая ссылка:
https://node03.steamworkshopdownloader.io/prod//storage/12120/207294/1334251520/207294_.raw.download.zip?uuid=bc8ec71a-f8c9-4107-a6a6-a5e1b3106044
Это и есть прямая ссылка на файл.
Вот код:
def get_file_url(id):
headers = {'user-agent': 'Hacked_By_HottabXP'}
data = '{"publishedFileId":'+id+',"collectionId":null,"hidden":false,"downloadFormat":"raw","autodownload":false}'
response = requests.post('https://node03.steamworkshopdownloader.io/prod/api/download/request', headers=headers, data=data)
uuid = response.json()['uuid']
data2 = json.dumps({"uuids":[uuid]})
time.sleep(1)
# print(response.json())
response = requests.post('https://node03.steamworkshopdownloader.io/prod/api/download/status', headers=headers, data=data2)
# print(response.json())
storagePath = response.json()[uuid]['storagePath']
# print(storagePath)
url = 'https://node03.steamworkshopdownloader.io/prod//storage/'+storagePath+'?uuid='+uuid
return url
url = get_file_url("2072949")
print(url)