تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] مشروع برنامج لتحميل المقاطع من اليوتيوب باستخدام الاداة YouTube-dl
#1
بسم الله الرحمن الرحيم

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



الأداة  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

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

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

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

الرد }}}
#2
بارك الله فيك و لك و جزاك خير الجزاء أخي الكريم على مشاركتنا الملف
قناتنا على اليوتوب
الرد }}}
تم الشكر بواسطة: معاند الحظ , asemshahen5 , ابو روضة , ابو روضة
#3
جزاك الله كل الخيرات والبركات أستاذنا العزيز
الرد }}}
تم الشكر بواسطة: معاند الحظ , asemshahen5
#4
العفو منكم اخواني فلم اضع غاية جهدي في الموضوع
وهو كما ترون يحتاج الى الكثير من التحسين ومزيد من الشرح والامثلة
لكن بعون الله سأراجع مواضيعي واعمل على اضافة ماينقصها وتحسينها
على قدر الاستطاعة تدريجيا .

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

الرد }}}
تم الشكر بواسطة: ابو روضة , asemshahen5 , أمجد وضاح , youssefoo , youssefoo


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  برنامج معمل تحاليل طبية قوقيلا 0 101 26-11-25, 11:31 AM
آخر رد: قوقيلا
  مثال تحميل من اليوتيوب justforit 0 223 22-10-25, 01:38 AM
آخر رد: justforit
  متجري: برنامج محاسبة و مبيعات لمتجر 2021 مع السورس كود. Mohamad Anan 25 16,308 09-07-25, 05:50 AM
آخر رد: Taha Okla
Heart [مشروع] نسخه مصغره من برنامج صانع الاكواد للجميع aliday03 20 20,836 05-05-25, 12:14 AM
آخر رد: ashrafhisham
  [مثال] برنامج فتح الملفات من الأقراص Kamil 0 311 04-05-25, 10:10 PM
آخر رد: Kamil
  [مثال] البحث باستخدام ComboBox Kamil 0 291 20-04-25, 09:15 PM
آخر رد: Kamil
  [مشروع] مشروع إدارة الأقساط قابل للتعديل musalem 7 2,117 07-02-25, 08:09 PM
آخر رد: الورد2
  [VB.NET] مشروع لارسال اشعارات مثل push notifications للهواتف ميدو الفنان 1 839 30-01-25, 12:42 AM
آخر رد: Mina Botros
  [مشروع] برنامج المحرر لكتابة مواضيع المنتدى - النسخة النهائية sooriaty03 16 15,426 14-12-24, 04:48 PM
آخر رد: princelovelorn
  البحث بين تاريخين في VB.NET باستخدام Stored procedure في SQL Server ggtt17121985 1 628 17-11-24, 01:44 AM
آخر رد: abdelmadjid

التنقل السريع :


يقوم بقرائة الموضوع: