Как скачать видео с любого сайта

Тема в разделе "Компьютеры. Вопрос-ответ", создана пользователем lan143, 16 фев 2015.

  1. lan143

    lan143 Погроммист Команда форума

    Ответ: поставить кучу плагинов на браузер, адаптированных для конкретных сайтов. Ну или поступить немного умнее.
    Чтобы поступить немного умней, открываем ссылку, на которой находится плеер в любом браузере на движке Chromium (подойдут и другие современные браузеры, но элементы управления у них будут отличаться). После нажимаем F12. Появится консоль разработчика:
    Скриншот 2015-02-16 22.40.45.png
    Нам нужно перейти в вкладку Network. У меня она уже открыта. Если плеер начинает автоматически воспроизводить видео после открытия страницы, то обновляем её, иначе нажимаем кнопку начала воспроизведения. Плеер начнет грузить видео, и это отобразиться в сетевой активности. Нам нужно найти тот запрос, который открывает соединение на загрузку видео файла. Его можно опознать по по расширению запрашиваемого файла (в примере 360.mp4), или по типу video/mp4. Так же полоска в секции Timeline будет расти со временем, это информирует о загрузке файла.
    Скриншот 2015-02-16 22.42.47.png
    Нажимаем на название потока в секции Name и откроется информация о запросе:
    Скриншот 2015-02-16 22.42.56.png
    И во вкладке Headers ищем строку Request URL. Она обычно вторая сверху. Адрес в этой строке и есть ссылка на наш файл. Вставляем её в менеджер закачек и качаем без проблем.
    Таким же образом можно качать и музыку.
    Есть некоторые хитрые сервисы, которые пытаются это блокировать различными методами. Обычно они очень легко обходятся. Например заставляя ваш менеджер закачек повторить запрос передавая такие параметры как Referer, User-Agent, Cookie. Могут быть и какие-то другие параметры, все зависит от извращенности разработчиков этого плеера. Просто смело заставляем менеджер закачек посылать такие же заголовки как это делает плеер, и файлы будут качаться без проблем.
     
  2. lan143

    lan143 Погроммист Команда форума

    Нашел тут один не стандартный плеер. Он грузит видео не целиком, а кусками. Причем эти куски заранее подготовлены. Выглядит загрузка кусков вот так:
    Скриншот 2015-02-21 00.02.08.png
    В самом начале загружается файл m3u8, который выглядит примерно так:
    Код:
    #EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-TARGETDURATION:19
    #EXT-X-MEDIA-SEQUENCE:0
    #EXTINF:10.385378,
    1311_en0.ts
    #EXTINF:10.176833,
    1311_en1.ts
    #EXTINF:12.470789,
    1311_en2.ts
    #EXTINF:15.473789,
    1311_en3.ts
    #EXTINF:8.758756,
    1311_en4.ts
    #EXTINF:3.837167,
    1311_en5.ts
    #EXTINF:16.474789,
    1311_en6.ts
    #EXTINF:2.502500,
    1311_en7.ts
    #EXTINF:13.096422,
    1311_en8.ts
    #EXTINF:10.427078,
    1311_en9.ts
    #EXTINF:10.260256,
    1311_en10.ts
    #EXTINF:9.634622,
    1311_en11.ts
    #EXTINF:10.760744,
    1311_en12.ts
    #EXTINF:10.176833,
    1311_en13.ts
    #EXTINF:10.427089,
    1311_en14.ts
    #EXTINF:6.172833,
    1311_en15.ts
    #EXTINF:12.262244,
    1311_en16.ts
    #EXTINF:10.427089,
    1311_en17.ts
    #EXTINF:14.305956,
    1311_en18.ts
    #EXTINF:10.427089,
    1311_en19.ts
    #EXTINF:3.253244,
    1311_en20.ts
    #EXTINF:16.433089,
    1311_en21.ts
    #EXTINF:6.172833,
    1311_en22.ts
    #EXTINF:9.342667,
    1311_en23.ts
    #EXTINF:16.182833,
    1311_en24.ts
    #EXTINF:0.959289,
    1311_en25.ts
    #EXTINF:12.887878,
    1311_en26.ts
    #EXTINF:10.427078,
    1311_en27.ts
    #EXTINF:10.427089,
    1311_en28.ts
    #EXTINF:5.839167,
    1311_en29.ts
    #EXTINF:10.552200,
    1311_en30.ts
    #EXTINF:10.135133,
    1311_en31.ts
    #EXTINF:10.260244,
    1311_en32.ts
    #EXTINF:10.427089,
    1311_en33.ts
    #EXTINF:8.299956,
    1311_en34.ts
    #EXTINF:15.056711,
    1311_en35.ts
    #EXTINF:13.179833,
    1311_en36.ts
    #EXTINF:5.255244,
    1311_en37.ts
    #EXTINF:10.093422,
    1311_en38.ts
    #EXTINF:8.299956,
    1311_en39.ts
    #EXTINF:10.427078,
    1311_en40.ts
    #EXTINF:11.386378,
    1311_en41.ts
    #EXTINF:10.427089,
    1311_en42.ts
    #EXTINF:10.427078,
    1311_en43.ts
    #EXTINF:10.427089,
    1311_en44.ts
    #EXTINF:10.427078,
    1311_en45.ts
    #EXTINF:10.427089,
    1311_en46.ts
    #EXTINF:10.427078,
    1311_en47.ts
    #EXTINF:10.635622,
    1311_en48.ts
    #EXTINF:3.294967,
    1311_en49.ts
    #EXTINF:10.427078,
    1311_en50.ts
    #EXTINF:10.427089,
    1311_en51.ts
    #EXTINF:16.391367,
    1311_en52.ts
    #EXTINF:5.797467,
    1311_en53.ts
    #EXTINF:8.925578,
    1311_en54.ts
    #EXTINF:11.011000,
    1311_en55.ts
    #EXTINF:7.340667,
    1311_en56.ts
    #EXTINF:10.427089,
    1311_en57.ts
    #EXTINF:12.929578,
    1311_en58.ts
    #EXTINF:10.427089,
    1311_en59.ts
    #EXTINF:10.010000,
    1311_en60.ts
    #EXTINF:13.096411,
    1311_en61.ts
    #EXTINF:10.427089,
    1311_en62.ts
    #EXTINF:9.426078,
    1311_en63.ts
    #EXTINF:10.427089,
    1311_en64.ts
    #EXTINF:10.427078,
    1311_en65.ts
    #EXTINF:10.427089,
    1311_en66.ts
    #EXTINF:3.294956,
    1311_en67.ts
    #EXTINF:9.217544,
    1311_en68.ts
    #EXTINF:10.427078,
    1311_en69.ts
    #EXTINF:8.508500,
    1311_en70.ts
    #EXTINF:10.427089,
    1311_en71.ts
    #EXTINF:18.518500,
    1311_en72.ts
    #EXTINF:5.839167,
    1311_en73.ts
    #EXTINF:8.591911,
    1311_en74.ts
    #EXTINF:16.766756,
    1311_en75.ts
    #EXTINF:10.427078,
    1311_en76.ts
    #EXTINF:1.710044,
    1311_en77.ts
    #EXTINF:12.679333,
    1311_en78.ts
    #EXTINF:9.509500,
    1311_en79.ts
    #EXTINF:10.427078,
    1311_en80.ts
    #EXTINF:10.427089,
    1311_en81.ts
    #EXTINF:10.427078,
    1311_en82.ts
    #EXTINF:4.838167,
    1311_en83.ts
    #EXTINF:10.427089,
    1311_en84.ts
    #EXTINF:18.393378,
    1311_en85.ts
    #EXTINF:10.135122,
    1311_en86.ts
    #EXTINF:4.004000,
    1311_en87.ts
    #EXTINF:9.801456,
    1311_en88.ts
    #EXTINF:7.632622,
    1311_en89.ts
    #EXTINF:10.427089,
    1311_en90.ts
    #EXTINF:12.846167,
    1311_en91.ts
    #EXTINF:6.297956,
    1311_en92.ts
    #EXTINF:10.427089,
    1311_en93.ts
    #EXTINF:9.551200,
    1311_en94.ts
    #EXTINF:12.220544,
    1311_en95.ts
    #EXTINF:13.638622,
    1311_en96.ts
    #EXTINF:13.555211,
    1311_en97.ts
    #EXTINF:2.544211,
    1311_en98.ts
    #EXTINF:9.926578,
    1311_en99.ts
    #EXTINF:10.427089,
    1311_en100.ts
    #EXTINF:7.132122,
    1311_en101.ts
    #EXTINF:15.932589,
    1311_en102.ts
    #EXTINF:10.427078,
    1311_en103.ts
    #EXTINF:10.427089,
    1311_en104.ts
    #EXTINF:6.631622,
    1311_en105.ts
    #EXTINF:6.756744,
    1311_en106.ts
    #EXTINF:12.762756,
    1311_en107.ts
    #EXTINF:8.174833,
    1311_en108.ts
    #EXTINF:14.347667,
    1311_en109.ts
    #EXTINF:10.427078,
    1311_en110.ts
    #EXTINF:5.755756,
    1311_en111.ts
    #EXTINF:8.675333,
    1311_en112.ts
    #EXTINF:13.221544,
    1311_en113.ts
    #EXTINF:10.427078,
    1311_en114.ts
    #EXTINF:12.846167,
    1311_en115.ts
    #EXTINF:5.714044,
    1311_en116.ts
    #EXTINF:15.223544,
    1311_en117.ts
    #EXTINF:7.632622,
    1311_en118.ts
    #EXTINF:5.046711,
    1311_en119.ts
    #EXTINF:11.428078,
    1311_en120.ts
    #EXTINF:9.634622,
    1311_en121.ts
    #EXTINF:10.427089,
    1311_en122.ts
    #EXTINF:10.427078,
    1311_en123.ts
    #EXTINF:10.427089,
    1311_en124.ts
    #EXTINF:4.796456,
    1311_en125.ts
    #EXT-X-ENDLIST
    
    Тут все просто: в блоках перечислено название файлов с кусками. Затем эти названия подставляются в URL и загружаются по очереди реализуя т.н. ленивую загрузку. Видимо товарищам-владельцам было лень заморочиться с настройкой веб сервера, чтобы он отдавал файл не полностью, а с определенной секунды, как в vk или youtube.
    В любом случае можно написать простой скрипт, который скачает все эти куски, а затем соберет в один файл с помощью ffmpeg например.