31

Re: Получение http ссылки с youtube

WendyH пишет:

na-socke.tk, немного объясню как работает скрипт g.php.
Кроме самого скрипта g.php, ему также нужны classes.php и возможность писать в тот же каталог в файл algorithms.ini.

Скрипт скачивал отсюда https://github.com/WendyH/HMS-Youtube.
Удалил algorithms.ini после запуска g.php файл перезаписался с таким содержимым vfl8KhWdC = "w7 r w33 w2 w51 w2 w46 r w1" ссылку выдает вновь битую

32

Re: Получение http ссылки с youtube

Сравнил текст скрипта на github и у себя на сайте, оказывается на github устаревшая версия.
Я её обновил. Попробуйте взять скрипт отсюда заново.
https://github.com/WendyH/HMS-Youtube/blob/master/g.php

Sony Bravia KDL-32CX523
Спасибо сказали: na-socke.tk1

33

Re: Получение http ссылки с youtube

WendyH пишет:

Сравнил текст скрипта на github и у себя на сайте, оказывается на github устаревшая версия.
Я её обновил. Попробуйте взять скрипт отсюда заново.
https://github.com/WendyH/HMS-Youtube/blob/master/g.php


Спасибо большущее помогло, все работает как нужно. Еще раз спасибо большое. И еще раз извините что первые вопросы возможно были с нарушением, честно не хотел нарушать правила, думал что будет пример а оказалось что нарушил.

34 (2017.08.06 13:35:16 отредактировано na-socke.tk)

Re: Получение http ссылки с youtube

WendyH пишет:

Сравнил текст скрипта на github и у себя на сайте, оказывается на github устаревшая версия.
Я её обновил. Попробуйте взять скрипт отсюда заново.


Извините а можно еще вопросик, можно ли как-то скрыть файл g.php? от прямого доступа пользователя????
Если делаю так:

<script type="text/javascript">
    var current_location = window.location.href;
    var parent_location = 'parent_location_init';

    try {
      parent_location = window.parent.location.href;
    } catch(exception) {}

    if (current_location == parent_location) {
      window.location.href = '/oshibka.php';
    }
  </script>

То прямого доступа к файлу нет но и ссылка не подзагружается, в консоли выдает такое :

Request URL:http://tube/g.php?v=vFo6Z-cMFJc&redirect
Request Method:GET
Status Code:206 Partial Content
Remote Address:127.0.0.1:80
Response Headers
view source
Connection:Keep-Alive
Content-Length:701
Content-Range:bytes 0-700/701
Content-Type:text/html
Date:Sun, 06 Aug 2017 09:48:56 GMT
Keep-Alive:timeout=10, max=100
Server:Apache
Request Headers
view source
Accept:*/*
Accept-Encoding:identity;q=1, *;q=0
Accept-Language:ru,en-US;q=0.8,en;q=0.6
Connection:keep-alive
Host:tube
Range:bytes=0-
Referer:http://prov/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Query String Parameters
view source
view URL encoded
v:vFo6Z-cMFJc
redirect:
Name

Если шифрую через шифратор uppod :
http://prov/g.php?v=vFo6Z-cMFJc&redirect

#06807407407003a02f02f07007206f07602f06702e07006807003f07603d07604606f03605a02d06304d04604a06307c072065064069072065063074

и ставлю ссылку в плеер то выдает такое:

GET http://prov/redirect 404 (Not Found)

Как это победить можно???

P/s


Есть скрипт нашел в интернете, который тянет видео тоже с ютуб но ссылку выдает такую  http://tube/ajax.php?id=iqh6PhT_HuQ&type=video/mp4&size=hd720    если можно бы было сделать такое в данном скрипте.

Код скрипта ajax.php

<?php
@set_time_limit(0);
$id = $_REQUEST['id'];
$type = $_REQUEST['type'];
$size = $_REQUEST['size'];
$html = "";

parse_str(file_get_contents('http://www.youtube.com/get_video_info?video_id=' . $id . '&asv=2'), $info);
$streams = explode(',', $info['url_encoded_fmt_stream_map']);

foreach ($streams as $stream) {
  parse_str($stream, $real_stream);
  $stype = $real_stream['type'];

  $codec = str_replace('"', "", substr($real_stream['type'], strpos($real_stream['type'], '"'), strlen($real_stream['type']) - strpos($real_stream['type'], '"')));
  if ($codec == $stype)
    $codec = "N/A";

  if (strpos($real_stream['type'], ';') !== false) {
    $tmp = explode(';', $real_stream['type']);
    $stype = $tmp[0];
    unset($tmp);
  }
  if ($type == "" && $size == "") {
    $html .= '<tr>';
    $html .= '<td>'.$real_stream['quality'].'</td>';
    $html .= '<td>'.$stype.'</td>';
    $html .= '<td>'.$codec.'</td>';
    $html .= '<td> </td>';
    $html .= '<td><a class="btn btn-large btn-success pull-left" href="ajax.php?id='.$id.'&type='.$stype.'&size='.$real_stream['quality'].'" style="margin-right: 15px;"><i class="icon-download-alt icon-white"></i> Download this video file</a></td>';
    $html .= '</tr>';
    //echo "<a href='test3.php?id=" . $id . "&type=" . $stype . "&size=" . $real_stream['quality'] . "'>" . $stype . " - " . $codec . " - " . $real_stream['quality'] . "</a><br>";
  } else {
    if ($stype == $type && ($real_stream['quality'] == 'hd1080' || $real_stream['quality'] == 'hd720' || $real_stream['quality'] == 'large' || $real_stream['quality'] == 'medium' || $real_stream['quality'] == 'small')) {
      if ($size == $real_stream['quality']) {
        $ext = "";
        if($stype=="video/webm")
          $ext = "webm";
        elseif($stype=="video/x-flv")
          $ext = "flv";
        elseif($stype=="video/mp4")
          $ext = "mp4";
        elseif($stype=="video/3gpp")
          $ext = "3gp";
        //header("Content-Description: File Transfer");
        //header("Content-Disposition: attachment; filename=keepvideos.$codec");
        //header("Content-Transfer-Encoding: binary");
        //'Content-type: '.$stype."\n\r"."
        //header("Content-Disposition: attachment; filename=keepvideos.$codec\n\r"."Content-Description: File Transfer\n\r");
        header("Content-Disposition: attachment; filename=keepvideos.$ext\n\r");
        //header('Content-disposition: attachment; filename=keepvideos.'.$ext."\n\r".'Content-type: '.$stype);
        //header('Content-type: '.$stype);
        //readfile('movie.mpg');

        //header('Transfer-encoding: chunked');
        ob_flush();
        flush();
        @readfile($real_stream['url'] . '&signature=' . $real_stream['sig']);
        ob_flush();
        flush();
        break;
      }
    }
  }
}

if($html)
  echo "<table style='width:100%'>".$html."</table>";

35

Re: Получение http ссылки с youtube

na-socke.tk пишет:

Извините а можно еще вопросик, можно ли как-то скрыть файл g.php? от прямого доступа пользователя????

Не совсем понял, что значит скрыть от прямого доступа пользователя? Чтобы не понятно было по какому запросу получается ссылка на поток?

Я не знаю что Вы там делаете, поэтому трудно давать советы.
Если запрос g.php идёт через javascript в html вашей страницы, то можно просто запаковать и обфусцировать код запуска этого запроса.

Но любопытным пользователям это будет не помеха, ибо все запросы в любом случае можно увидеть в инструментах разработчика браузера. Как бы Вы их не прятали.

Sony Bravia KDL-32CX523

36

Re: Получение http ссылки с youtube

А если хотите запретить вызов g.php скрипта всем, кроме вас, проще вообще этот вызов делать на стороне сервера, до вывода html и туда уже вставлять полученную ссылку от g.php.

Например, идёт запрос на страницу, а у вас на сервере, сначала делается запрос к g.php, а при выводе html уже вставляется полученная ссылка.

Sony Bravia KDL-32CX523

37

Re: Получение http ссылки с youtube

WendyH пишет:

А если хотите запретить вызов g.php скрипта всем, кроме вас, проще вообще этот вызов делать на стороне сервера, до вывода html и туда уже вставлять полученную ссылку от g.php.

Например, идёт запрос на страницу, а у вас на сервере, сначала делается запрос к g.php, а при выводе html уже вставляется полученная ссылка.

Я понял спасибо. И маленький вопрос насчет качества, смотрите либо я немного не понимаю либо ютуб отдает самое высокое только 720p так как при запросе  http://rus.lostcut.net/youtube/g.php?v= … eight=1080 в отчете видно 720p. То есть это самое высокое качество или даже 720p в скрипте подписывается как 720p.

38

Re: Получение http ссылки с youtube

na-socke.tk пишет:

И маленький вопрос насчет качества, смотрите либо я немного не понимаю либо ютуб отдает самое высокое только 720p так как при запросе  http://rus.lostcut.net/youtube/g.php?v= … eight=1080 в отчете видно 720p. То есть это самое высокое качество или даже 720p в скрипте подписывается как 720p.

Youtube отдаёт ссылки на видео со звуком только до 720p включительно. Свыше - только отдельными дорожками для видео и аудио.
Этот метод они назвали adaptive.
Для видео, у которых есть качество 1080p и выше, в параметрах к скрипту можно указывать этот метод получения ссылок на поток (добавить &adaptive=1).
Но получаемые данные будут содержать две ссылки, одна на видео без звука, вторая на аудио.
Например:
view-source:https://hms.lostcut.net/youtube/g.php?v=ElvLZMsYXlo&max_height=1080&adaptive=1&hr=1

Sony Bravia KDL-32CX523

39

Re: Получение http ссылки с youtube

WendyH пишет:

Youtube отдаёт ссылки на видео со звуком только до 720p включительно. Свыше - только отдельными дорожками для видео и аудио.
Этот метод они назвали adaptive.
Для видео, у которых есть качество 1080p и выше, в параметрах к скрипту можно указывать этот метод получения ссылок на поток (добавить &adaptive=1).
Но получаемые данные будут содержать две ссылки, одна на видео без звука, вторая на аудио.
Например:
view-source:https://hms.lostcut.net/youtube/g.php?v=ElvLZMsYXlo&max_height=1080&adaptive=1&hr=1

Ага я понял, спасибо за ответ.

40

Re: Получение http ссылки с youtube

Здравствуйте спасибо за скрипт, подскажите пожалуйста можно в етом скрипте  вытянуть все ссылки с качеством при запросе g.php?v=uOA7STZ4g0g
выдает только одну с качеством  360 . Спасибо

41

Re: Получение http ссылки с youtube

и почему то не все ссылки тянет
watch?v=S0eHuR2MYtE
{"status":"error","error":4,"reason":"Can not found stream map in player config"}

42 (2019.12.21 20:57:51 отредактировано smsbox3)

Re: Получение http ссылки с youtube

bond пишет:

{"status":"error","error":4,"reason":"Can not found stream map in player config"}

та же история для Otm7GCvbYK8 Очень похоже, что защищено.И  появляется такое сообщение все чаще.

43

Re: Получение http ссылки с youtube

Что-то очень много видео с youtube перестало извлекать прямую ссылку.  Просто беда :(

44

Re: Получение http ссылки с youtube

Не силен в этом деле но что смог можно  лутше конечно сделать слабо у меня с масивами получается
http://php.videonavigator.net.ua/

45

Re: Получение http ссылки с youtube

bond пишет:

Не силен в этом деле но что смог можно  лутше конечно сделать слабо у меня с масивами получается
http://php.videonavigator.net.ua/

У меня ссылку не получается скачать,а WendyH скрипт для получения ссылки,что не работает?

Отладка кода — это как охота. Охота на баги.

46

Re: Получение http ссылки с youtube

Spell пишет:

а WendyH скрипт для получения ссылки,что не работает?

Не всегда, например

https://hms.lostcut.net/youtube/g.php?v=8xEZWKekhFs

для ссылки

https://www.youtube.com/watch?v=8xEZWKekhFs

Пишет {"status":"error","error":3,"reason":"Video page do not contains player.config json object"}

47

Re: Получение http ссылки с youtube

smsbox3 пишет:

Не всегда, например

https://hms.lostcut.net/youtube/g.php?v=8xEZWKekhFs

у меня вот так.

+ открыть спойлер

https://hms.lostcut.net/misc.php?action=pun_attachment&amp;item=4148

Прикреплённые файлы сообщения

Screen Shot 01-18-20 at 06.36 PM.JPG 131.83 kb, скачивалось 1 раз, начиная с 2020.01.18

Отладка кода — это как охота. Охота на баги.

48 (2020.01.18 21:20:20 отредактировано smsbox3)

Re: Получение http ссылки с youtube

Spell пишет:

у меня вот так.

На твоем сервер код? Или модифицирован? Дело в том, что если немного модифицировать, то там есть прямая ссылка, которая работает.
Только сейчас дошло, что возможно дело вот в этом https://hms.lostcut.net/viewtopic.php?pid=9665#p9665 и надо просто удалить старый файл и дать возможность построить новый?

49

Re: Получение http ссылки с youtube

smsbox3 пишет:

На твоем сервер код? Или модифицирован? Дело в том, что если немного модифицировать, то там есть прямая ссылка, которая работает.
Только сейчас дошло, что возможно дело вот в этом https://hms.lostcut.net/viewtopic.php?pid=9665#p9665 и надо просто удалить старый файл и дать возможность построить новый?

Нет скрипт не на сервере. Я подправил чуток код,пришлось малость изменить и у меня работает скрипт

Отладка кода — это как охота. Охота на баги.