EasyDelphi Q&A

.تم الانتقال للموقع الجديد . وسيبقى الموقع القديم هذا متاح للقراءة فقط حتى الانتهاء من نقل كل الاسئلة إلى الموقع الجديد

يمكنك طرح الاسئلة والنقاشات في الموقع الجديد. الذهاب للموقع الجديد


+1 تصويت
149 مشاهدات


السلام عليكم
لدي تطبيق يشبه تصميمه تطبيق tubmate snaptube.قمت بجلب البيانات من اليوتوب بصيغة xml لاتعامل معها.
https://www.youtube.com/feeds/videos.xml?playlist_id=xxxx
https://www.youtube.com/feeds/videos.xml?channel_id=xxxx
لكن لم اجد طريقة لجلب بيانات فيديو محدد بxml-لمن يملك الطريقة فلا يبخل علينا-
وجدت بصيغة json
https://www.googleapis.com/youtube/v3/videos?part=snippet&id=xxxx&key=xxxx(الايدي هو رقم الفيديو والمفتاح هو رقم تحصل عليه في التسجيل في منصة قوقل للمطورين) المهم في الناتج: اسم الفيديو صورة الفديو.
لم اتعامل مسبقا مع الجيسون ولا اعرف طريقة برمجته في الدلفي -كيفية استخراج مثلا الاسم ووضعه فيlabel اي تحويله لstring-

ماريده كيفية تحميل فيديو بآيدي محدد
سابقا اعانني أحد الإخوة بهذه الطريقة
https://www.youtube.com/watch?v=oSRMi1SYTbE
تغييره الى
https://www.youtube.com/get_video_info?video_id=oSRMi1SYTbE
تجد الناتج روابط التحميل للفيديو بجوداته المتعددة مع صورته
ولكن لم أعرف كيفية فك النص وجلب رابط[1]بجودةhd رابط[2]بجودةsd  رابط[3]بجودةmq

هذا الكود ب PHPيقوم يقوم على اساس هذه الفكرة

<?php


$data=file_get_contents("https://www.youtube.com/get_video_info?video_id=oSRMi1SYTbE" );

 parse_str( $data);
parse_str($player_response,$arr);

$arr= explode(",",$player_response);


 foreach($arr as $item){
    parse_str( $item,$vdata);
    print_r($vdata);
 }


لاأعرف كيف احول الكود للدلفي
وشكرا
 

سُئل في تصنيف fmx بواسطة (430 نقاط) | 149 مشاهدات

2 إجابة

+1 تصويت
انت تخلط كل الامور مع بعضها . لا اعرف لماذا .
القصة ببساطة هو بناء او تفكييك الرابط . والرابط هو نص string . عندك id و channal حصلت عليهم من xml . بقي عليك فقط تركيب او تفكيك الرابط .
كل الموضوع هو اللعب بالنصوص. حتى كود الـ php لا يقوم باكثر من اخذ نص وتقطيعه. لا اكثر ولا اقل .

لا علاقة للجايسون او xml بكل ما تقول . هذه مجرد نصوص ما عليك سوى تقطيعها والبحث عن الاجزاء التي تهمك . ثم اعادة تركيب الرابط .. كل شيء نصوص او مصفوفة نصوص .
تم الرد عليه بواسطة (32,580 نقاط)
0
صحيح ماقلت . اعرف أن الاستجابة في getinfo هو نص ولكن لا أعرف كيف تقطيعه وتركيبه ليكون رابط كما قلت

لماذا تكلمت عن xml ببساطه أردت أنا الاستجابة تحديدا تكون بصيغةxml لاني أعرف طريقة التعامل معها أما النصوص الحقيقية لا أعرف
0
Var
  S:string;
  I: Integer;
  List:TStringList;
  exploded:stringArray;
 
begin
  Memo1.ClearContent;
  List:=TStringList.Create;
  S:=TNetEncoding.URL.Decode(Memo1.Text);
 // S:=TIdURI.URLDecode(Memo1.Text);
 S:=S.Replace('%2F','/').Replace('%2C',',').Replace('%3A',':').Replace('%3D','=').Replace('%3F','?').Replace('%26','&').Replace('%252C',',').Replace('%252F','/').Replace('%253D','=');
  Memo1.Text:=S;
  List.Text:=S;



  try
 
   exploded:=Explode(':',List.Text);
    // ExtractStrings([','],[],pchar('"streamingData"'),List);
   

   for I := 0 to Length(exploded) - 1 do
   
    begin
       Memo2.Lines.Add(exploded[i]);
         

    end;


  finally
    List.Free;
  end;
end;

ممكن تصحيح الكود وشكرا

0

هذه هي النتيجة لم أعرف كيف أحصل على رابط التحميل

0 تصويتات
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Text := GrabVideo('FCyr5MEh77Q');
end;

function TForm1.GrabVideo(link: string): string;
var
  html: string;
  flink, slink: integer;
begin
  html := http.Get(format('https://www.youtube.com/get_video_info?video_id=%s',
    [link])).ContentAsString(TEncoding.UTF8);
  html := TNetEncoding.URL.Decode(html);
  html := html.Replace('%2F', '/').Replace('%2C', ',').Replace('%3A', ':')
    .Replace('%3D', '=').Replace('%3F', '?').Replace('%26', '&')
    .Replace('%252C', ',').Replace('%252F', '/').Replace('%253D', '=')
    .Replace('\u0026', '&');
  flink := Pos('url":"', html);
  result := 'Error';
  if flink > 0 then
  begin
    slink := PosEx('","', html, flink + 8);
    if slink > 0 then
    begin
      result := Copy(html, flink + 8, slink - flink - 8);
    end;
  end;
end;

 

تم الرد عليه بواسطة (2,870 نقاط)
عُدل بواسطة

اسئلة متعلقة

0 تصويتات
0 إجابة
سُئل أبريل 12 في تصنيف fmx بواسطة Abdou_System (120 نقاط) | 23 مشاهدات
0 تصويتات
1 إجابة
سُئل أغسطس 30، 2019 في تصنيف fmx بواسطة Amar Gozim (11,220 نقاط) | 69 مشاهدات
+2 تصويتات
1 إجابة
سُئل ديسمبر 3، 2019 في تصنيف fmx بواسطة وليد غديري (430 نقاط) | 68 مشاهدات
+4 تصويتات
2 إجابة
سُئل يوليو 24، 2018 في تصنيف Delphi بواسطة Bouh25 (1,050 نقاط) | 158 مشاهدات
+1 تصويت
1 إجابة
سُئل يوليو 22، 2018 في تصنيف Delphi بواسطة Amar Gozim (11,220 نقاط) | 84 مشاهدات
ادعُ اصدقائك في الفايسبوك لمشاركتك
Comodo SSL

مرحبًا بك إلى EasyDelphi Q&A، حيث يمكنك طرح الأسئلة والحصول على الإجابة عليها من المستخدمين الآخرين.

لا يسمح بطلب او السؤال عن كراك او تفعيل او كسر او فك او اي شيء يخالف اتفاقيات الترخيص  مهما كان السبب ومهما كان البرنامج ونوعه. ولا حتى نشر روابط تحتوي على مثل هذه الاشياء لا في الاسئلة ولا في الاجابات ولا التعليقات . نهائيا

497 سؤال
752 إجابة
1,417 تعليق
271 مستخدم