![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получить адрес потока видео с Youtube [D7]
Artem78 © (2016-10-28 03:26:00)Нужно по ссылке на видео с Youtube (например: https://www.youtube.com/watch?v=tPVmFDjAfp8) получить ссылку на сам видео поток ( http://r16---sn-5hne6nl6.googlevideo.com/videoplayback?dur=748.402&upn=SijNsBoqZZs&pl=19&id=o-AMVzNhAP1BaGGT2jtcLM6DAGjP_Zmi3USNMmIkrds8JC&source=youtube&ratebypass=yes&signature=0FC292202109AB47606851DE70BF1257E56DD38B.... и т.д.). Этот адрес можно получить здесь: http://www.youtube.com/get_video_info?video_id=tPVmFDjAfp8. Структура как видете очень запутанная, потоков тут много, нужно выдрать хотябы первый попавшийся.
Посоветуйте, как его можно подцепить? Может где-нибудь есть уже готовый модуль для этого?
P.S. Есть рабочий код на php для этой задачи - http://stackoverflow.com/a/13968020/4108542. PHP я знаю хорошо, но испытываю трудности с переносом этого кода на Delphi.
Германн (2016-11-13 01:51:00) [1]Удалено модератором
Artem78 (2016-11-13 01:28:00) [2]Удалено модератором
Artem78 (2016-11-13 01:26:00) [3]Немного подумав, таки решил задачу. Выкладываю код, может кому-нибудь ещё пригодится:
unit uYoutube;
interface
uses
Classes,
SysUtils,
httpsend, ssl_openssl, synacode, PerlRegEx,
Windows;
function GetYoutubeDownloadLink(const VideoID: string): string;
function MemoryStreamToString(M: TMemoryStream): string;
implementation
function GetYoutubeDownloadLink(const VideoID: string): string;
var
HTTPSender: THTTPSend;
Str: string;
RegexObj: TPerlRegEx;
begin
Result := '';
HTTPSender := THTTPSend.Create;
try
HTTPSender.HTTPMethod('GET', ' https://www.youtube.com/get_video_info?video_id=' + VideoID);
if (HTTPSender.ResultCode >= 100) and (HTTPSender.ResultCode
stas (2016-10-29 16:39:00) [4]RegExp в помощь.
kilkennycat (2016-10-29 03:24:00) [5]я могу помочь. что именноу тебя не получается?
Artem78 (2016-10-28 16:05:00) [6]Неужели никто не может помочь? очень нужно