Яндекс Диск - ссылка на файл

S1
На сайте с 02.10.2016
Offline
138
1099

Можно-ли как-то узнать постоянную ссылку на файл в Яндекс Диске?
Что-бы ткнуть, и началось скачивание файла, а не открывалась страница Яндекса.

Если скачиваешь, то реальный путь к файлу примерно такой:
https://s359man.storage.yandex.net/rdisk/ced99529f05f7d60cfccfb521660b1fd17ba5219cc74a1fd19866fb4459c78c3/63734a05/OeBYgt7hOuxrmVTqUaj7RK-oXZZ2hl3uGtZL2DhIw1_6SvCPqHSSpw3XfACYgiBnSCKzSKLkueg-qXQpQXI17g==?куча_каких-то_параметров ....
Но подобная ссылка перестает работать через некоторое время.

Через некоторое время параметры ссылки другие.

Постоянно обмениваюсь ссылками с качественными сайтами по теме электроника, электронные компоненты, и тд.
totamon
На сайте с 12.05.2007
Offline
437
#1
sanek1991 :
Через некоторое время параметры ссылки другие.
 нет у яндекс.диска прямого скачивания, можно использовать сервис типа https://getfile.dokpub.com/yandex/ или свой скрипт по тому же принципу
Как получить прямую ссылку на скачивание в сервисе Яндекс.Диск
  • getfile.dokpub.com
Сервис предоставляет возможность получить прямые ссылки на скачивание с Яндекс Диска для файлов или папок опубликованных другими пользователями (публичных ресурсов). Здесь Вы можете получить прямую ссылку на видео или изображение на Яндекс Диске, также возможно получить прямую ссылку на любой тип файла за исключением расширения exe. Для тех, у...
Домены и хостинг https://8fn.ru/regru | Дедик от 3000р https://8fn.ru/73 | VPS в Москве https://8fn.ru/72 | Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno | ХОСТИНГ №1 РОССИИ https://8fn.ru/beget
D
На сайте с 28.06.2008
Offline
1101
#2

Я так делаю

function get_Yandex_disk($url)
{
    //Инициализируем сеанс
    $curl = curl_init();
    //Указываем адрес страницы
    curl_setopt($curl, CURLOPT_URL, $url);
    //Ответ сервера сохранять в переменную, а не на экран
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    //Переходить по редиректам
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    $agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36';
    curl_setopt($curl, CURLOPT_USERAGENT, $agent);
    //$getUserAgent = getUserAgent();
    //curl_setopt($curl, CURLOPT_USERAGENT, $getUserAgent);
    curl_setopt($curl, CURLOPT_ENCODING, 'gzip');
    curl_setopt($curl, CURLOPT_TIMEOUT, 20); //timeout in seconds
    //cookie
    curl_setopt($curl, CURLOPT_COOKIEJAR, __DIR__. '/cookie.txt');
    curl_setopt($curl, CURLOPT_COOKIEFILE, __DIR__. '/cookie.txt');
    //если сайт https
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    //http2 если нужно
    curl_setopt($curl, CURLOPT_HTTP_VERSION, 3);
    //Выполняем запрос:
    $result = curl_exec($curl);

    $httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    return array( "code" => $httpcode, "response" => $result );
}

Где урл публичная ссылка на Яндекс диск

$result = get_Yandex_disk( "https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key=" . urlencode( $url ));
        if( $result["code"] == 200 )
        {
            $result["response"] = json_decode( $result["response"], true );
            $urlDownload =  $result["response"]["href"];
          
        }else
        {
            echo "error";
        }

По ссылке, что советует  totamon у меня довольно часто ловит капчу от Яндекса. 

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий