Массовая загрузка файлов с 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 ответа

Шаги

  1. Установите gdown с помощьюpip install gdown- у меня команда работала в стандартной Windows 11 PowerShell. (Убедитесь, что для этой команды у вас установлены Python и Pip)

  2. Создайте файл .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
  1. Отредактируйте переменные вверху приведенного ниже сценария в соответствии с вашими потребностями.

  2. Запустить его

  3. Если все пойдет правильно - Вы найдете Ваши файлы в указанном Вами каталоге.

Сценарий

      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

Другие вопросы по тегам