Як ми завантажуємо відео з URL-адресою [blok]


218

Я хочу завантажити відео, URL-адреса якого не є простим mp4-файлом, але його URL-адреса типу blob, наприклад.

<video id="playerVideo" width="450px" autoplay="autoplay" height="338px" 
       style="height:100%;width:100%;" class="mejs-rai-e"
       src="blob:http://www.example.com/d70a74e1-0324-4b9f-bad4-84e3036ad354">
</video>

Чи є хромоване розширення або програмне забезпечення, яке можна використовувати для завантаження відтворюваного відео.


@cdlvcdlv Спасибі, чоловіче! Після тестування багато інструментів, саме цей працював для мого конкретного випадку!
felipeptcho

@felipeptcho Ви дуже раді. Радий бачити, що відповідь може допомогти комусь іншому.
cdlvcdlv

2
Див. Розширення HDS / HLS Video Downloader для веб-переглядачів Chromium.
georgeawg

13
Чому кожна відповідь на це питання передбачає розширення файлу .m3u8? Це ніколи не було зазначено у питанні.
numbermaniac

Привіт @SidD, чи вдалось ти вирішити це питання? Якщо так, чи не могли б ви повідомити мені, яке рішення працювало для вас?
Гагравал

Відповіді:


229

Щойно я придумав загальне рішення, яке має працювати на більшості веб-сайтів. Я спробував це лише на Chrome, але цей метод повинен працювати з будь-яким іншим браузером, оскільки Dev Tools майже однаковий у всіх.

Кроки:

  1. Відкрийте «Інструменти розробки» браузера (зазвичай F12 , або Ctrl-Shift-I , або клацніть правою клавішею миші та потім Перевірте у спливаючому меню) на сторінці із цікавим відео.
  2. Перейдіть на вкладку Мережа та перезавантажте сторінку. Вкладка заповнюватиметься списком запитів (їх може бути до ста або навіть більше).
  3. Шукайте назви запитів та знайдіть запит із .m3u8розширенням. Їх може бути багато, але, швидше за все, перший ви знайдете той, кого шукаєте. Він може мати будь-яке ім’я, наприклад playlist.m3u8.
  4. Відкрийте запит, і в підрозділі заголовки ви побачите повну URL-адресу запиту в полі запиту URL . Скопіюйте. введіть тут опис зображення
  5. Витягніть відео з m3u8. Є багато способів зробити це, я дам вам те, що я спробував, але ви можете більше гугл, "завантаживши відео з m3u8".
    • Варіант 1. Якщо у вас встановлений програвач VLC, введіть URL-адресу VLC, використовуючи опцію меню " Відкрити мережевий потік ... ". Я не збираюся тут деталізувати цю деталь, є багато вичерпних посібників у багатьох місцях, наприклад, тут . Якщо сторінка не працює, ви завжди можете google іншу, "завантаживши онлайн-відео в vlc".
    • Варіант 2. Якщо ви більше використовуєте командний рядок, використовуйте FFMPEG або власний скрипт, як вказано в цьому запитанні SuperUser .

48
Варіант 3: використовувати URL-адресу списку відтворення безпосередньо з youtube-dl, це дуже просто!
Арно Турньє

3
youtube-dl також працює для mpd-файлів.
Гібадо

2
@patricK Ви можете спробувати додати реферера, наприклад:youtube-dl --add-header Referer: https://www.google.com/referer-page https://google.com/video.m3u8
Searene

1
майте на увазі, якщо я запитаю, як ви відкрили рядок пошуку в мережевому модулі та шукаєте ключові слова "m3u8".
Чжоу XF

1
І варіант 4: використовуйте JDownloader 2 для завантаження URL-адреси списку відтворення, на мою думку, це найпростіший спосіб.
Робін Хартманн

50

Використовуйте розширення Google Chrome HLS Downloader, щоб отримати посилання на список відтворення M3U. Піктограма на панелі браузера відображатиме кількість списків відтворення на поточній веб-сторінці. Натиснувши на піктограму, ви побачите список посилань списку відтворення, а потім скопіюйте кнопку копіювання поруч із посиланням.

Потім використовуйте програму youtube-dl, щоб завантажити файл.

youtube-dl --all-subs -f mp4 -o "file-name-to-save-as.mp4" "https://link-from-Google_Chrome-HLS_Downloader_extension"

Пояснення параметрів командного рядка:

  • -f mp4 = Формат виводу mp4

  • --all-subs = Завантажити всі субтитри

  • -o "file-name-to-save-as.mp4" = Ім'я файла для збереження відео як.

  • " https: // link-from-Google_Chrome-HLS_Downloader_extension " = Це посилання на список відтворення, який ви скопіювали з розширення HLS Downloader.

Якщо ви використовуєте однакові параметри конфігурації весь час для youtube-dl , можливо, ви захочете ознайомитись із параметрами конфігурації для youtube-dl , оскільки це може заощадити багато набору тексту.

Розширення HLS Downloader є безкоштовним та відкритим кодом за ліцензією MIT, якщо ви хочете побачити код, який можна знайти на його сторінці проекту на Github .


Це працює дуже добре, за винятком випадків, коли в MP4 не було звуку? Чи є спосіб вирішити це?
Крістофер Д. Емерсон

2
У мене не було цього. Це має бути щось із файлом, який ви завантажуєте. Я вважаю, що стандарт mp4 підтримує кілька аудіозаписів. Перевірте, чи немає ще однієї аудіозапису і що перша - тиша.
frederickjh

1
Велике продовження! набагато простіше, ніж робити весь пробіг навколо себе з файлами m3u8 і просто пролісувати файли blob. Однак я не потребував того, що було в ютубі. HLS Downloader передає мені відеофайли безпосередньо.
Джастін Емлай

спробуйте додати -x у межах варіантів
сер Вон Беркер

У моєму випадку я спробував HLS Downloader за допомогою Twitter, і він працював так, як сказав @Justin: він передав відеофайл безпосередньо. Але я також спробував пропозиції, запропоновані @Vlad щодо іншої відповіді - в основному, виконуючи всі дії вручну - з однаковими результатами (тобто отримання робочого .MP4файлу).
Гвінет Левелін

27

Процес може відрізнятися залежно від того, де і як розміщується відео. Знаючи, що може допомогти відповісти на питання детальніше.

Як приклад; ось як ви можете завантажувати відео на посилання на Vimeo.

  1. Перегляньте вихідний код iframe відеопрогравача
  2. Шукати mp4
  3. Скопіюйте посилання із запитом маркера
  4. Завантажити до закінчення терміну дії маркера

Джерело та покрокові інструкції тут.

введіть тут опис зображення


2
Цей метод працює добре, навіть якщо тип файлу в urlне .mp4 , просто перевірте заголовок файлу та перейменуйте його.
eapo

25

Ось як мені вдається "завантажити" його:

  1. Використовуйте елемент Inspect для визначення URL-адреси файлу списку відтворення M3U
  2. Завантажте файл M3U
  3. Використовуйте VLC для читання файлу M3U, передавання потоку та перетворення відео в MP4

У Firefox з'явився файл M3U типу type / vnd.apple.mpegurl

введіть тут опис зображення

Вміст файлу M3U виглядатиме так:

Відкрийте медіаплеєр VLC та скористайтеся опцією Media => Перетворити. Використовуйте свій (збережений) файл M3U як джерело:

введіть тут опис зображення


3
Чудова порада! Здається, не потрібно завантажувати m3u8файл - ви можете просто вставити зовнішній URL в якості джерела.

на вкладці мережі є вторинна вкладка "Медіа". легше отримати файл m3u8 лише з декількох елементів.
pcarvalho

19

Існує безліч способів отримати URL-адресу .m3u8, переглянувши джерело сторінки, переглянувши вкладку «Мережа» в Інструментах для розробників у Chrome або використовуючи плагін, такий як HDL / HLS Video Downloader .

Маючи URL-адресу .m3u8, ви зможете ffmpegзавантажити це відео у такий файл:

$ ffmpeg -i 'https://url/to/some/file.m3u8' -bsf:a aac_adtstoasc \
    -vcodec copy -c copy -crf 50 file.mp4

11

Якщо ви НЕ можете знайти .m3u8файл, вам потрібно зробити пару кроків.

1) Перейдіть на вкладку мережі та сортуйте за Media

Сортувати за медіа

2) Ви побачите щось тут і виберіть перший пункт. У моєму прикладі це mpdфайл. потім скопіюйте URL-адресу запиту.

3) Далі завантажте файл за допомогою улюбленого інструменту командного рядка, використовуючи URL-адресу з кроку 2.

youtube-dl -f bestvideo+bestaudio https://url.com/destination/stream.mpd

4) Залежно від кодування вам, можливо, доведеться з'єднувати аудіо та відео файли разом, але це залежатиме від випадку відеозапису.


10

Я розмістив це вже на деяких інших веб-сайтах, і хоч чому б не поділитися ним з хлопцями / дівчатами в stackoverflow.

  1. Встановіть розширення Video DownloadHelper у браузер Firefox.
  2. З активованим DownloadHelper перейдіть на веб-сторінку, що містить відео, яке ви хочете завантажити.
  3. Після того, як відео буде потокове, натисніть на іконку DownloadHelper. Це дасть вам список усіх форматів файлів, наявних у поточному відео.
  4. Перейдіть до формату файлу, який ви хочете завантажити
  5. Праворуч ви побачите стрілку
  6. Натисніть на цю стрілку, щоб отримати додаткову інформацію про поточне відео та обраний формат
  7. У вікні, що відображається в кінці цієї стрілки, прокрутіть вниз та виберіть "Деталі"
  8. Тепер у вас є всі деталі щодо поточного відео та вибраного формату. Це щось подібне.

Хіт Details⊗ _needsAggregate _needsCoapp дії BITRATE фрагментированного розширення descrPrefix durationFloat frameId fromCache група
Довжина HLS ID isPrivate masterManifest mediaManifest originalId посилається назва Статус розміру topUrl URL urlFilename

  1. А тепер подивіться специфіку реферала в цій деталі звернення. Це URL, який ви хочете. Скопіюйте його та вставте улюблений завантажувач.

9
  1. Знайдіть список відтворення / маніфест на вкладці мережі інструментів для розробників. Завжди є такий, як саме це працює. Він може мати розширення m3u8, яке ви можете ввести у фільтр.
  2. Дайте його інструменту youtube-dl. Він може завантажити набагато більше, ніж просто YouTube. Він автоматично завантажить кожен сегмент, потім поєднає все з FFmpeg, а потім відкидає деталі. Є хороший шанс, що він підтримує веб-сайт, який ви хочете завантажити з рідного місця, і вам навіть не потрібно робити крок №1.
  3. Якщо ви знайдете впертий сайт, і ви зіткнулися з 403 помилками ... Телерік Фіддлер на допомогу. Він може вловлювати і зберігати все, що передається (наприклад, відеофайл), оскільки він виступає як локальний проксі. Все, що ви бачите / чуєте, можна завантажити, за винятком випадків, коли це вміст DRM, як Spotify.

2
Як би ви використовували youtube-dl для цього? просто youtube-dl https://....m3u8"?
Азіз Джавед

Також це працює для приватних відео?
Азіз Джавед

@AzizJaved так, саме так. Я не перевіряв це на приватних відео, але якщо ви можете побачити сторінку, де вони є, вони працюють точно так само, як у загальнодоступному відео. Важливо те, що ви бачите в браузері: якщо ви бачите його, ви можете скопіювати його. Просто! 😉
Гвінет

Ви хочете, щоб у мене стаття про завантаження зашифрованих відео HLS? Це в основному крок 3, але з ffmpeg розшифрувати та об'єднати ts сегменти.
Фірш - LetsWP.io

0

Якщо крапка інстанціюється даними з маніфесту F4M (перевірте вкладку «Мережа» в Інструментах для розробників Chrome), ви можете завантажити відеофайл за допомогою скрипта php, розміщеного тут: https://n1njahacks.wordpress.com/2015/01/29 / як зберегти-hds-flash-потоки-з будь-якої веб-сторінки /

Поклавши:

  if ($manifest == '')
    $manifest = $_GET['manifest'];

перед:

  if ($manifest)

ви можете навіть запустити його на веб - сервері, використовуючи запити з рядком запиту: ?manifest=[manifest url].

Зауважте, що, ймовірно, ви хочете використовувати FTP-клієнт для отримання завантаженого відео-файлу та очищення після сценарію (він залишає всі завантажені відео частини).


-27

Ви можете просто клацнути правою кнопкою миші та зберегти крапку як mp4.

Коли я грав із записом відео / аудіозапису на основі браузера, вихідний блок був доступний для завантаження безпосередньо.


Я не думаю, що це можливо. Чи можете ви поділитися тим, який браузер ви завантажуєте?
Пірат X

Я використовував хром, але я мав на увазі відеозапис webrtc, зроблений на локальній машині. Для веб-крапель процедура може бути різною.
псевдозач

1
це працює для звичайних відео, але не для крапель, як здається.
TankorSmash
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.