Массовая загрузка файлов с Google Drive из списка URL
У меня есть список из 100 URL, которые ссылаются на файлы на диске Google, которые я хочу скачать. Каждый URL выглядит так:
https://drive.google.com/file/d/0B8asdfasdfasd4YXc/view?usp=sharing
Как я могу скачать их все оптом? В идеале я бы поместил URL-адреса в текстовый файл, а затем что-то загрузило бы их все. Они видео
Хорошо, я могу изменить URL на это:
https://drive.google.com/uc?export=download&id=[TheFileID]
но у меня все равно есть кнопка "скачать в любом случае"
2 ответа
Шаги
Установите gdown с помощью
pip install gdown
- у меня команда работала в стандартной Windows 11 PowerShell. (Убедитесь, что для этой команды у вас установлены Python и Pip)Создайте файл .txt с вашими ссылками, перечисленными следующим образом:
https://drive.google.com/file/d/someID/view
https://drive.google.com/file/d/someotherID/view
and so on - Don't put anything that is not a link here
Отредактируйте переменные вверху приведенного ниже сценария в соответствии с вашими потребностями.
Запустить его
Если все пойдет правильно - Вы найдете Ваши файлы в указанном Вами каталоге.
Сценарий
from os import chdir
from typing import List
from gdown import download
from requests.exceptions import MissingSchema
my_links_file_path: str = r'C:\Users\Jakub\Desktop\a\download_links.txt' # EDIT THIS!
my_output_directory_path: str = r'C:\Users\Jakub\Desktop\a' # EDIT THIS!
def google_drive_bulk_download(links_file_path: str, output_directory_path: str):
try:
file = open(links_file_path, 'r')
except FileNotFoundError:
print(f"\n!!! The File '{links_file_path}' is Invalid!\n")
return
try:
chdir(my_output_directory_path)
except FileNotFoundError:
print(f"\n!!! The File '{output_directory_path}' is Invalid!\n")
return
file_lines: List[str] = [stripped_line for stripped_line in
[line.strip() for line in file.readlines()]
if stripped_line]
file_lines_count: int = len(file_lines)
print('\n\n==> Started Downloading!\n')
for i, url_raw in enumerate(file_lines, start=1):
download_url: str = url_raw.strip()
print(f'\n-> Downloading... [{i}/{file_lines_count}]')
try:
download(url=download_url, quiet=False, fuzzy=True)
except MissingSchema:
print(f"!!! The URL '{download_url}' is Invalid!")
print('Finished!')
print('\n\n==> Finished Downloading!')
google_drive_bulk_download(my_links_file_path, my_output_directory_path)
Записи
Этот метод сработал для меня. В Windows 11 — Python 3.10 и Python 3.11.
Этот скрипт может работать, а может и не работать с другими форматами ссылок на Google Диск.
Вы можете попробовать использовать VPN, если загрузка не удалась — мне пришлось это сделать.
Существует множество расширений браузера, которые помогут вам составить список URL-адресов открытых в данный момент вкладок браузера. Нет необходимости делать это вручную.
Я нашел расширение, которое открывает несколько URL-адресов. Я изменил настройки загрузки, чтобы не подтверждать, а затем смог вставить список URL-адресов в формате https://drive.google.com/uc?export=download&id=[TheFileID] , чтобы все они могли загрузиться.
Расширение Chrome под названием «Открыть несколько URL-адресов» https://chrome.google.com/webstore/detail/open-multiple-urls/oifijhaokejakekmnjmphonojcfkpbbh/rel=en