как скачивать файлы с яндекс диска
есть файл: https://yadi.sk/d/xsjJ3dEqb4pvlQ (он открыт) как мне его скачать? не нужна авторизация и т.п.
Отслеживать
47.8k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
задан 27 фев 2020 в 16:56
387 1 1 золотой знак 7 7 серебряных знаков 16 16 бронзовых знаков
27 фев 2020 в 18:46
Я посмотрел документации. Мало того,что не указанно, какую библиотеку устанавливать и использовать. Там даже нет конкретных примеров.
27 фев 2020 в 19:56
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Вот код для скачивания опубликованного файла. (Ваша ссылка почему-то нерабочая, я для примера вставил свою ссылку. Замените её на свою рабочую, когда она у вас будет)
import requests from urllib.parse import urlencode base_url = 'https://cloud-api.yandex.net/v1/disk/public/resources/download?' public_key = 'https://yadi.sk/d/UJ8VMK2Y6bJH7A' # Сюда вписываете вашу ссылку # Получаем загрузочную ссылку final_url = base_url + urlencode(dict(public_key=public_key)) response = requests.get(final_url) download_url = response.json()['href'] # Загружаем файл и сохраняем его download_response = requests.get(download_url) with open('downloaded_file.txt', 'wb') as f: # Здесь укажите нужный путь к файлу f.write(download_response.content)
Как скачать по ссылке с яндекс диска
Скачивание файлов большого объема из облачного хранилища «Яндекс.Диск» представляет проблему. Чтобы загрузка файла на локальный ПК произошла полностью, без остановки и ошибок, необходимо использовать менеджер загрузок с поддержкой так называемой «докачки».
Встроенный в FireFox или Chrome менеджер загрузок может остановить закачку, если произошёл обрыв соединения.
Способ №1 — не оптимальный: «Turbo Download Manager»
Для исправления ситуации с загрузкой больших файлов в Mozilla Firefox разработано дополнение «Turbo Download Manager (3rd edition)».
Ссылка на дополнение Turbo Download Manager из магазина расширений Mozilla Firefox:
Дополнительно настраивать расширение не нужно. Оно устанавливается на панель расширений и контролирует встроенный в браузер загрузчик файлов.
При этом, после перехода по ссылке на Яндекс Диск, вида https://disk.yandex.ru/d/vvQQssdfwweqadasdf
произвести нажатие на каждый файл в отдельности и в верхней части окна браузера нажать кнопку «Скачать»
Недостатки данного способа:
1) требуется участие пользователя при начале загрузки.
2) невысокая надёжность закачки.
3) невозможно качать в несколько потоков.
Способ №2 — оптимальный. Синхронизация папок в программе «Яндекс Диск»
В данном способе происходит синхронизация папки на локальном компьютере с Яндекс Диск.
Первым делом, на компьютер, выполняющий роль «Файлового хранилища» нужно скачать и установить Яндекс Диск:
- Для Windows — https://disk.yandex.ru/download/YandexDisk30Setup.exe/?instant=1
- Для Linux — http://repo.yandex.ru/yandex-disk/?instant=1
- Для MacOS — https://disk.yandex.ru/download/YandexDisk30.dmg/?instant=1
1) В электронной почте открыть ссылку на файл «чужого» Яндекс.Диска, ссылка вида:
https://disk.yandex.ru/d/vvQQssdfwweqadasdf
2) В этом случае, обычно через электронную почту передаётся ссылка на папку или файл, которые другой пользователь сделал доступным (видимым) по ссылке.
После открытия этой ссылки произойдет переход на диск другого пользователя. Необходимо скопировать файл или папку на свой Яндекс Диск, чтобы затем забрать на локальный ПК с помощью программы Яндекс Диска, которая поддерживает и загрузку в несколько потоков, и точную синхронизацию файлов между удалённым «облаком» и локальным ПК.

Первым делом, при переходе в локальную папку другого пользователя, нужно нажать на ссылку «Сохранить на Яндекс Диск».
После чего, будет запрошено имя пользователя (обычно вида user. @yandex.ru) и пароль от Яндекс.Диска, который принадлежит Вам, в который будет производится копирование файла или папки из чужого Яндекс Диска в ваш, в папку «Загрузки».
После чего ссылка на файл попадёт в Яндекс.Диск пользователя. которому имя и пароль принадлежат.
3) Загрузка файлов с помощью синхронизации Диска.
Далее рассматривается вариант, когда «Файловое хранилище» на ПК работает под ОС Windows.
Поскольку в Windows при синхронизации данных по умолчанию загрузка производится на Диск C:, в профиль текущего пользователя, перед началом сохранения файлов их облака на ПК необходимо перенастроить местоположение папки «Загрузки» на другой раздел или диск, где много свободного места. У меня диск со свободным пространством — это диск F:
- Создаём на компьютере назначения на диске, куда будет производится загрузка файлов (у меня F:) новую папку, например: F:\Downloads

- В Проводнике находим профиль текущего пользователя, и в нём папку «Загрузки».
(Обычно находится в C:\Users) - Нажимаем на «Свойства»

- Нажимаем кнопку «Переместить. «
- В окне назначения выбираем папку, ту которую создали ранее. В моём случае — F:\Downlods

- Применяем изменения. Соглашаемся на перенос файлов.

4) На том же компьютере назначения запускаем программу «Яндекс диск«.

6) В левой части окна выбрать папку «Загрузки», а в правой части — выделить файл или папку (переданную от другого пользователя по ссылке), которую нужно загрузить на ПК.
После выделения папки, нажать правую кнопу мыши и выбрать пункт «Сохранить на данном компьютере»
После чего начнётся загрузка файлов из «облака» на данный ПК.
Загрузка будет теперь производится не на диск C: а на диск, куда мы ранее указали путь для папки Downloads..
После начала загрузки начнётся процесс передачи из облака на локальный диск (в данном случае F:) в несколько потоков, и канал Интернет будет полностью занят. Если это 100 Мбит/с, то скорость может иногда достигать 110 Мбит/с, т.к. при гигабитной сети скорость ограничивает провайдер по тарифному плану. Затем, нужно выполнить легкий «шейпинг» собственной загрузки, средствами маршрутизатора (роутера) — например, огранить скорость для IP-адреса, на который производится загрузка из облака, до 70-80 Мбит/с.
Загрузка производится достаточно быстро и без проблем. За степенью завершения процесса можно наблюдать по прогресс-индикатору в нижней части окна Яндекс Диск.

Чтобы отменить копирование файлов на ПК, нужно удалить ссылку на «чужой» файл из папки «Загрузки» и перезапустить программу Яндекс.Диск:
Добавление от 22.03.2022:
Установка Яндекс Диска в ОС Linux
Загрузка программы установки Яндекс Диск для ОС Linux производится со страницы: https://yandex.ru/support/disk-desktop-linux/start.html. На ней находятся ссылки на скачивание *.RPM или *.DEB.
sudo dpkg -i yandex-disk_latest_amd64.deb
Помощь по программе Yandex Disk для Linux:
yandex-disk --help
Яндекс.Диск 0.1.6.1074 Использование: yandex-disk start [OPTION] yandex-disk stop [OPTION] yandex-disk status [OPTION] yandex-disk sync [OPTION] yandex-disk token [OPTION] FILE yandex-disk publish [OPTION] FILE yandex-disk unpublish FILE Команды: start запустить как демон и начать синхронизацию папки. В файл ".sync/status" записывается текущий статус синхронизации. stop остановить демон. status показать статус демона: статус синхронизации, ошибки, последние синхронизированные файлы, состояние дискового пространства. token получить OAuth токен, зашифровать и сохранить его в специальном файле (по умолчанию /.config/yandex-disk/passwd). sync синхронизировать папку и выйти (если демон запущен, дождаться окончания синхронизации). publish сделать файл/папку публичной и вывести ссылку в STDOUT. Объект будет скопирован в синхронизируемую папку. Для перезаписи существующих объектов используйте опцию --overwrite. unpublish удаление публичного доступа к файлу/папке. setup запустить мастер первоначальной настройки. Опции: --config=FILE, -c FILE прочитать опции из конфигурационного файла. Файл должен содержать строки вида имя=значение. Путь к файлу по умолчанию ~/.config/yandex-disk/config.cfg. --dir=DIR, -d DIR путь к папке Яндекс.Диска. --auth=FILE, -a FILE прочитать токен из файла. Файл должен быть подготовлен командой token. Путь к файлу по умолчанию ~/.config/yandex-disk/passwd. --exclude-dirs=DIR1,DIR2,… не синхронизировать указанные папки. --read-only не загружать локальные изменения на сервер. Измененные локально файлы будут переименованы. --overwrite в режиме read-only перезаписывать локально измененные файлы. --no-daemon, -D запустить демон без возврата управления в консоль. Чтобы вернуть управление, демон необходимо остановить, запустив в другой консоли команду yandex-disk stop или закрыв текущую консоль. --version, -v показать информацию о версии. --proxy=PARAM настроить прокси-сервер. Допустимые параметры: auto - использовать системные настройки прокси-сервера. Используется по умолчанию. no - не использовать прокси-сервер. protocol,address,port,login,password - настроить вручную. Пример настройки прокси-сервера вручную: proxy=socks4,my.proxy.local,1080,login,password
Синхронизация диска производится точно так же, как в версии для Windows.
Отличие в процессе настройки Яндекс Диск под Linux в том, что для управления демоном используется командная строка.
Описание команд Яндекс Диск:
- первый запуск
- работа с Яндекс Диск
yandex-disk token
«Откройте страницу ‘https://ya.ru/device’ и введите код ‘vpdbx61y’ в течение 300 секунд. Убедитесь, что вы авторизованы в браузере с нужным аккаунтом.»
- Перейдите на страницу https://ya.ru/device войдите в свою учётную запись (если их несколько, выберите Вашу).
Либо сразу произойдет переход к пункту 3, если вход в учётную запись Яндекс был выполнен ранее.
- На веб-странице введите код (токен), затем в следующем диалоге нажмите «Принять».
Если в течение 300 секунд не успели ввести токен, начинайте с п.1.
Использование программы Яндекс Диск в ОС Linux:
Начало работы с Яндекс Диск под Linux:
yandex-disk start
Как программно скачать файл с Яндекс.Диск?
Добрый день.
Есть файлы на яндекс диске с публичными ссылками, например, https://disk.yandex.ru/public/?hash=Zn9rQik51OUzcW.
Как программно скачать файл, например на php?
- Вопрос задан более трёх лет назад
- 25747 просмотров
2 комментария
Оценить 2 комментария

Салават @Salavat Автор вопроса
Точнее: есть ссылка на файл яндекс диск, нужно получить прямую ссылку на скачивание.

Салават @Salavat Автор вопроса
учетная запись мне не принадлежит
Решения вопроса 0
Ответы на вопрос 6

вот пример реализации на php:
function get_stat( $url, $headers ) < $handle = curl_init(); curl_setopt( $handle, CURLOPT_URL, $url ); curl_setopt( $handle, CURLOPT_HTTPHEADER, $headers ); curl_setopt( $handle, CURLOPT_SSL_VERIFYPEER, false ); curl_setopt( $handle, CURLOPT_SSL_VERIFYHOST, false ); curl_setopt( $handle, CURLOPT_RETURNTRANSFER, true ); $response = curl_exec( $handle ); $code = curl_getinfo( $handle, CURLINFO_HTTP_CODE ); return array( "code" =>$code, "response" => $response ); > $url_yandex_disk = "https://yadi.sk/i/byMUqoSLiw3Ki"; $result = get_stat( "https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key=" . urlencode( $url_yandex_disk ), array() ); if( $result["code"] == 200 ) < $result["response"] = json_decode( $result["response"], true ); echo 'Скачать'; > else
А здесь публикация и получение списка своих файлов на Яндекс диске:
https://getfile.dokpub.com/yandex/publish/
Для тех кто желает генерировать постоянно обновляемые ссылки передаваемые ,например в GET параметре, можно сделать так:
$url_yandex_disk = $_GET["ya_url"]; $result = get_stat( "https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key=" . urlencode( $url_yandex_disk ), array() ); if( $result["code"] == 200 )
а вот на Питоне:
import requests import pprint import urllib.parse targetUrl = "https://yadi.sk/i/03bE933n3PqpG2" url = "https://cloud-api.yandex.net/v1/disk/public/resources?public_key=" + urllib.parse.quote(targetUrl, safe="") responseData = requests.get(url) if responseData.headers["content-type"] in ["application/json; charset=utf-8", "application/json"]: print(pprint.pformat(responseData.json())) else: print(responseData)
В некоторых случаях могут возникать ошибки.
Ниже связанные вопросы с текущим ответом:
Как правильно использовать прямую ссылку с Яндекс.диска?
Скачать Видео с яндекс диска
Приветствую, необходимо скачать видео с яндекс диска. Простое скачивание не доступно, при нажатии на строку сохранить, ничего не происходит, на мой же яндекс диск данный файл так же не копируется, возможно он битый, но если нажать воспроизведение то видео файл воспроизводиться,. То есть его можно посмотреть но скачать нельзя. Есть ли способ изъять ссылку на видео при воспроизведении и скачать его?
Лучший ответ
Попробуй для начала браузер сменить, блокировщиков каких нет?
Арам Айрепетян Профи (934) 6 лет назад
менял, файл походу битый и скачиванию не подлежит, но смотреть его получается
Эд Орлов Мыслитель (7479) дай ссылку
Остальные ответы
У мня в Хроме расширение, без проблем вообще.
У тебя не знаю как
Арам Айрепетян Профи (934) 6 лет назад
что за расширение?
darial.6 Гуру (4193) Video Downloader professional
Арам Айрепетян Профи (934) 6 лет назад
попробывал, каждый файл весит 0 мб))
darial.6 Гуру (4193) извини тогда не знаю
agpУченик (173) 6 месяцев назад
Бес проблем это когда и без расширения есть кнопка скачать, а если ее нет — скачивается пустой
Каким браузером Вы пользуетесь?
Я думаю, что то блокирует в Вашем браузере скачивание . нужно искать.
Выход:
1. Установить более популярный браузер.
2. Установить программу на ПК (зарегистрироваться) и скачивать через Яндекс. Диск (после синхронизации файлы будут в папке Загрузки)
