Guest User

Untitled

a guest
Jun 28th, 2023
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. # что бы скачать музыку с трэда:
  2. # указать ссылку на трэд в thread_url (json в конце!)
  3. # уже скаченные не будут скачиваться снова
  4. # файлы скачиваются в папку указанную в folder_nameб 18 строка
  5.  
  6. import requests
  7. import json
  8. import os.path
  9.  
  10. thread_url = "https://2ch.hk/b/res/289254391.json"
  11. response = requests.get(thread_url)
  12.  
  13. if response.status_code != 200:
  14. print("code error,s bad Server answer")
  15. exit(0)
  16.  
  17. # folder to download into
  18. folder_name = "D:\Musik\music2ch4"
  19.  
  20. # create a formatted string of the Python JSON object
  21. text = json.dumps(response.json()['threads'][0], indent=4)
  22.  
  23. # text который str переводим в dict
  24. data = json.loads(text)
  25.  
  26. # храним ссылки
  27. urls = []
  28.  
  29. # пройтисе по всем ответам
  30. for i in data['posts']:
  31. # ответ с файлом(и)
  32. if i['files']:
  33. # в одном посте может быть больше одного файла
  34. for j, file_path in enumerate(i['files']):
  35. # берем только видео файлы
  36. if "webm" in file_path['path'] or "mp4" in file_path['path']:
  37. urls.append(file_path['path'])
  38.  
  39. # посмотреть сколько файлов
  40. print("Всего "+str(len(urls))+ " файлов")
  41.  
  42. # скачать всё
  43. def download():
  44. for i, s in enumerate(urls):
  45. file_name = s.split('/')[-1:]
  46. # не скачивать файл если он уже есть
  47. if not os.path.isfile(folder_name+'/'+file_name[0]):
  48. dl_url = "https://2ch.hk"+s
  49. # сохранить содержимое ссылки в r
  50. r = requests.get(dl_url, allow_redirects=True)
  51. # существует ли папка
  52. if not os.path.exists(folder_name):
  53. # Create a new directory because it does not exist
  54. os.makedirs(folder_name)
  55. # скачать
  56. open(folder_name+'/'+file_name[0], 'wb').write(r.content)
  57. print(f"Скачан: {i+1} файл")
  58.  
  59.  
  60. download()
  61.  
Add Comment
Please, Sign In to add comment