منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] مشروع برنامج لتحميل المقاطع من اليوتيوب باستخدام الاداة YouTube-dl - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم امثلة ومشاريع VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=188)
+--- الموضوع : [VB.NET] مشروع برنامج لتحميل المقاطع من اليوتيوب باستخدام الاداة YouTube-dl (/showthread.php?tid=32508)



مشروع برنامج لتحميل المقاطع من اليوتيوب باستخدام الاداة YouTube-dl - معاند الحظ - 12-12-19

بسم الله الرحمن الرحيم

والصلاة والسلام على سيد الخلق اجمعين
سبحانك لا علم لنا الا ما علمتنا إنك انت العليم الحكيم



الأداة  YouTube-dl


الوصف: هي أداة سطر الأوامر بمعنى انها تعمل من داخل برنامج CMD او Command prompt الموجود في نظام تشغيل ويندوز، وهي تستخدم لتحميل المقاطع من اليوتيوب وغيره من مواقع الأفلام (بضعة مواقع)، ويمكن استخدامها من داخل برامج فيجوال بيسك عن طريق الامر Process  

اما صيغة الامر المطلوب لاستخدام الأداة فهو كالتالي
كود :
youtube-dl [OPTIONS] URL [URL...]

ومثال على استخدام الأداة من داخل موجه الاوامر cmd
قم بفتح موجه الأوامر cmd من داخل المجلد الذي يحتوي على ملف YouTube-dl
ولفعل هذا يمكنك ان تكتب الامر cmd في صندوق عرض المسار في نافذة المجلد
واضغط انتر
اكتب YouTube-dl ثم اترك مسافة ثم اكتب خيارات التحميل التي تريدها
ثم اترك مسافة ثم اكتب او الصق رابط الفيديو او قائمة التشغيل في اليوتيوب
واضغط انتر
مثال:
كود :
YouTube-dl --merge-output mkv --write-info-json -f bestvideo+bestaudio https://www.youtube.com/playlist?list=PLkgPtLaqgDbO_ClC4aUs7PjJveDqR7TVE

المثال السابق يطلب من الأداة تحميل أفضل جودة ملف فيديو وأفضل جودة ملف صوت وبعد اكتمال التحميل يقوم بدمج الملفين معا بصيغة mkv

انصح كل من لم يستخدم الأداة هذي للتحميل من اليوتيوب من قبل ان يقوم بتجربة كل خيارات التحميل
والموجودة في صفحة الأداة في موقع   GitHub
من داخل cmd قبل استخدامها في برنامجه لكي تكون الصورة أوضح وأقرب للفهم

رابط صفحة الاداة YouTube-dl وشروحاتها

نأتي الان الى طريقة استخدامها من داخل برنامجنا

كل ما تحتاج فعله هو استخدام الامر Process
حيث سيقوم هذا الامر بتشغيل الأداة لتقوم بالتحميل، اذن ابدأ بتعريف متغير من نوع Process
ومتغير من نوع ProcessInfo كالتالي:

كود :
Dim proc As New Process
  Dim ProcInfo As New System.Diagnostics.ProcessStartInfo


ثم ضع الكود التالي في الحدث المستخدم لبدء التحميل


كود :
Dim ytdl_Option As String = "  -i  --write-auto-sub  --sub-lang en  --convert-subs srt --encoding utf-8  --yes-playlist " _
                                & "--no-part --merge-output mkv --write-info-json -f bestvideo+bestaudio   "

      Dim playlist_Option As String = Chr(34) + Me.VideoUrl.ToString + Chr(34)
      Dim filename As String = Chr(34) + Path.Combine(DownloadPath, RemoveIllegalPathCharacters(Me.VideoTitle))  '
      Dim output_Option As String = "  -o " + filename + ".%(ext)s"

      ProcInfo.FileName = Application.StartupPath + "\youtube-dl.exe"  'Location Of FFMPEG.EXE
      ProcInfo.Arguments = ytdl_Option + playlist_Option + output_Option
      'ProcInfo.Arguments +=


      ProcInfo.UseShellExecute = False      'use the shell execute command we always want no
      ProcInfo.WindowStyle = ProcessWindowStyle.Hidden    'hide the ffmpeg process window
      ProcInfo.RedirectStandardError = True             'Redirect the error out so we can read it
      ProcInfo.RedirectStandardOutput = True         'Redirect the standard out so we can read it
      ProcInfo.RedirectStandardInput = True         'Redirect the standard out so we can read it
      ProcInfo.StandardOutputEncoding = Encoding.UTF8


      ProcInfo.CreateNoWindow = True                 'We dont create the ffmpeg window
      proc.StartInfo = ProcInfo           'ffmpeg process start information = all above
      proc.EnableRaisingEvents = True
      proc.Start() 'Start Process

وهكذا فإن كل ما تبقى للتحميل من اليوتيوب هو تمرير رابط المقطع او قائمة التشغيل على اليوتيوب للأداة ضمن شفرة برنامجك.
وللمزيد من التوضيح يرجى تحميل المثال وهو برنامج من صنعي لتحميل مقاطع الفيديو من اليوتيوب

رابط تحميل المثال:
تحميل المثال من جوجل درايف

هذا باختصار ما اردت تقديمه واعتذر عن أي لبس او غموض او نقص موجود لكن يسعدني دائما المساعدة
بتقديم المزيد من الايضاح لمن يريد.


RE: مشروع برنامج لتحميل المقاطع من اليوتيوب باستخدام الاداة YouTube-dl - عبد العزيز البسكري - 12-12-19

بارك الله فيك و لك و جزاك خير الجزاء أخي الكريم على مشاركتنا الملف



RE: مشروع برنامج لتحميل المقاطع من اليوتيوب باستخدام الاداة YouTube-dl - ابو روضة - 13-12-19

جزاك الله كل الخيرات والبركات أستاذنا العزيز



RE: مشروع برنامج لتحميل المقاطع من اليوتيوب باستخدام الاداة YouTube-dl - معاند الحظ - 13-12-19

العفو منكم اخواني فلم اضع غاية جهدي في الموضوع
وهو كما ترون يحتاج الى الكثير من التحسين ومزيد من الشرح والامثلة
لكن بعون الله سأراجع مواضيعي واعمل على اضافة ماينقصها وتحسينها
على قدر الاستطاعة تدريجيا .

وانا شاكر لكم مروركم واطلاعكم على ماكتبت وتعقيبكم عليه