Как скачать файл на сервер по ссылке без расширения?
Всем привет!
Есть такая например ссылка
При переходе скачивается файл видео. Пытаюсь разобраться, можно ли по этой ссылке скачивать видео к себе на сервер?
PHP не изучал, но нашел пример на стоковерфлоу:
file_put_contents("название.mp4", fopen("https://ссылка", 'r')); |
file_put_contents("название.mp4", fopen("https://ссылка", 'r'));
Только вот качается не сам файл, а html страница с которого загружается это видео.
Помогите разобраться, есть ли варианты загрузить по данной ссылке файл на сервер или она не подходит для этого?
Дополнительно:
file_put_contents("название.mp4", file_get_contents('ссылка')); |
file_put_contents("название.mp4", file_get_contents('ссылка'));
Вся проблема не в коде или задаче, а в:
PHP не изучал
- Все верно, поэтому сюда и пишу, параллельно сам ковыряюсь.
- bldeser, если вам необходимо скачивать видео с ютуба, то лучше пользоваться специальными библиотеками (вроде youtube dl) или апи сервисов, которые предоставляют больше отладки. Тот сервис, который вы хотите использовать для загрузки видео, не предоставляет такого. Как минимум, там нужно предварительно проверять, возвращает ли он файл, а не html страницу.
- maksam07, Как раз копаю в этом направлении .. видимо по этой ссылке не получится скачивать. Не понятно только, почему при переходе по ссылке файл качается, а через скрипт не хочет.
- bldeser, попробуйте использовать эту библиотеку:
https://github.com/Athlon1600/youtube-downloader - maksam07, Ок, будем пробовать, спс
При переходе по указанной ссылке видео в браузере не качается, а идет переход на страницу с youtube роликом, но по 'счастливой оплошности' разработчика этого сайта идентификатор youtube ролика размещен прямо в ссылке:
presaver.com/youtube/qU5A0MLHtyE/download/22?title=treiler2023
(видно что сайт - рекламная пустышка, контента в нем нет, все полезное содержимое размещено в ссылке, загрузки видео не происходит, скорее всего сломалось что то)
Это значит, выделяешь из ссылки этот код (например с помощью регулярных выражений метод preg_match или с помощью комбинации parse_url выделив путь с помощью PHP_URL_PATH и explode, разбив путь по '/'), и запускаешь утилиту
yt-dlp "https://www.youtube.com/watch?v=qU5A0MLHtyE" -f код_формата |
yt-dlp "https://www.youtube.com/watch?v=qU5A0MLHtyE" -f код_формата
если запустить с ключом -F то будет выведен список доступных форматов и их кодов, при наличии ffmpeg в можно будет объединять аудио и видео потоки
все это запускать из php с помощью `обратных ковычек` либо вот список вариантов
p.s. yt-dlp рекомендую ставить с помощью pip, там обновляется оперативнее чем тот что ставится из репозитария ubuntu и других.
- Я так понял, это тоже библиотека для скачивания видео с ютуб? Сами ссылки на видео у меня есть, т.е. я их парсить буду. А вот скачивать эти видео я пытался через этот странный сайт. На самом деле там странно работает ссылка - при первом переходе открывается сайт, а если ещё раз перейти по этой же ссылке, то качается файл, как то так )
- yt-dlp это утилита командной строки
это наверное единственный проект, оперативно отслеживающий изменения в способе загрузки видео, умеет не только youtubeвсе остальные скорее всего основаны на нем, включая такие вот сайты
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы скачать файл на сервер по ссылке без расширения, необходимо выполнить несколько шагов.
Первым шагом является получение прямой ссылки на файл. Для этого необходимо пройти по ссылке на страницу, где находится файл, но не открывать его. Вместо этого нужно нажать правой кнопкой мыши на ссылку с названием файла и выбрать опцию "Копировать адрес ссылки" или "Копировать ссылку".
После того, как ссылка скопирована, нужно открыть новую вкладку в браузере и вставить скопированную ссылку в адресную строку. Затем нужно нажать Enter, чтобы перейти по этой ссылке.
После перехода по ссылке браузер попытается открыть файл, но если файл не имеет расширения, то браузер не сможет его отобразить. В этом случае файл будет загружен на сервер, и появится окно с запросом о том, куда сохранить файл на компьютере.
Далее необходимо выбрать папку для сохранения файла и нажать кнопку "Сохранить". После этого файл будет загружен на сервер и сохранен на компьютере без расширения.
Таким образом, следуя этим шагам, можно скачать файл на сервер по ссылке без расширения.