اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

يمكنك إستعمال مكتبة ytdl-core والتي توفر لك إمكانية تحميل فيديوهات من اليوتيوب بأي جودة تختارها:
عليك في البداية تثبيت الحزمة من خلال الأمر التالي:

npm i ytdl-core@latest

# أو إذا كنت تستعمل yarn
yarn add ytdl-core@latest

بعد ذلك يمكنك أن تقوم بإستخدامها بالشكل التالي:

const fs = require('fs');
const ytdl = require('ytdl-core');

ytdl('https://www.youtube.com/watch?v=KKfAuQrwzTY')
  .pipe(fs.createWriteStream('video-file-name.mp4'));

يمكن حتى إستعمالها لتحميل فيديوهات Shorts بنفس الطريقة:

ytdl('https://www.youtube.com/shorts/h_ZoMlNjANY')
  .pipe(fs.createWriteStream('video-file-name-2.mp4'));

يمكنك كذلك التحكم في جودة الفيديو الذي سيتم تحميله:

const fs = require('fs');
const ytdl = require('ytdl-core');

ytdl('https://www.youtube.com/shorts/h_ZoMlNjANY', {
  quality: 'highest'
})
  .pipe(fs.createWriteStream('video.mp4'));

 

  • 0
نشر

وعليكم السلام،

هنالك package خاصة بهذا الأمر تسمى youtube-dl

npm install youtube-dl

طريقة تحميل الفيديو باستخدامها : 

const fs = require('fs')
const youtubedl = require('youtube-dl')

const video = youtubedl('http://www.youtube.com/watch?v=90AiXO1pAiA',
  // Optional arguments passed to youtube-dl.
  ['--format=18'],
  // Additional options can be given for calling `child_process.execFile()`.
  { cwd: __dirname })

// Will be called when the download starts.
video.on('info', function(info) {
  console.log('Download started')
  console.log('filename: ' + info._filename)
  console.log('size: ' + info.size)
})

video.pipe(fs.createWriteStream('myvideo.mp4'))

يمكنك معاينت صفحتها على npm من هنا

  • 0
نشر
بتاريخ 41 دقائق مضت قال عمر قره محمد:

وعليكم السلام،

هنالك package خاصة بهذا الأمر تسمى youtube-dl


npm install youtube-dl

طريقة تحميل الفيديو باستخدامها : 


const fs = require('fs')
const youtubedl = require('youtube-dl')

const video = youtubedl('http://www.youtube.com/watch?v=90AiXO1pAiA',
  // Optional arguments passed to youtube-dl.
  ['--format=18'],
  // Additional options can be given for calling `child_process.execFile()`.
  { cwd: __dirname })

// Will be called when the download starts.
video.on('info', function(info) {
  console.log('Download started')
  console.log('filename: ' + info._filename)
  console.log('size: ' + info.size)
})

video.pipe(fs.createWriteStream('myvideo.mp4'))

يمكنك معاينت صفحتها على npm من هنا

قمت بتجربة هذا البكج لكن لايتم تحميله لدي لا اعلم لماذا

Error: Invalid version range
    at module.exports (D:\Store project\node_modules\bin-version-check\index.js:12:25)
    at Object.<anonymous> (D:\Store project\node_modules\bin-version-check-cli\cli.js:29:1)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)
    at internal/main/run_main_module.js:17:47
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! youtube-dl@3.5.0 check: `bin-version-check python '>=2'`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the youtube-dl@3.5.0 check script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\sloos\AppData\Roaming\npm-cache\_logs\2022-07-16T07_07_18_571Z-debug.log
npm WARN rollback Rolling back arrify@1.0.1 failed (this is probably harmless): EPERM: operation not permitted, lstat 'D:\Store project\node_modules\minimist-options\node_modules'npm WARN rollback Rolling back got@11.8.5 failed (this is probably harmless): EPERM: operation not permitted, scandir 'D:\Store project\node_modules\youtube-dl\node_modules'npm WARN api-store-project@1.0.0 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! youtube-dl@3.5.0 postinstall: `npm run check && npm run download`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the youtube-dl@3.5.0 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\sloos\AppData\Roaming\npm-cache\_logs\2022-07-16T07_07_18_876Z-debug.log

 

  • 0
نشر
بتاريخ 16 دقائق مضت قال Samer Alashqar:

قمت بتنزيل بايثون ولم تحل المشكلة 

يبدو ان تم اهمال الـ package المسماة youtube-dl

جرب هذه الـ package  البديلة : youtube-dl-exec

للتنزيل

 

npm install youtube-dl-exec --save
ملاحظة : ستحتاج لتحميل python3 قبل التنزيل

لتحميل الفيديو 

const youtubedl = require('youtube-dl-exec')

youtubedl('https://www.youtube.com/watch?v=6xKWiCMKKJg', {
  dumpSingleJson: true,
  noWarnings: true,
  noCallHome: true,
  noCheckCertificate: true,
  preferFreeFormats: true,
  youtubeSkipDashManifest: true,
  referer: 'https://www.youtube.com/watch?v=6xKWiCMKKJg'
}).then(output => console.log(output))

 

صفحتها على npm

  • 0
نشر
بتاريخ الآن قال عمر قره محمد:

يبدو ان تم اهمال الـ package المسماة youtube-dl

جرب هذه الـ package  البديلة : youtube-dl-exec

للتنزيل


npm install youtube-dl-exec --save

لتحميل الفيديو 


const youtubedl = require('youtube-dl-exec')

youtubedl('https://www.youtube.com/watch?v=6xKWiCMKKJg', {
  dumpSingleJson: true,
  noWarnings: true,
  noCallHome: true,
  noCheckCertificate: true,
  preferFreeFormats: true,
  youtubeSkipDashManifest: true,
  referer: 'https://www.youtube.com/watch?v=6xKWiCMKKJg'
}).then(output => console.log(output))

 

شكرا لك اخي عمل لدي بمجرد اضافة هذا الامر 

npm i --save --force youtube-dl

 

  • 0
نشر
بتاريخ 22 ساعات قال سامح أشرف:

يمكنك إستعمال مكتبة ytdl-core والتي توفر لك إمكانية تحميل فيديوهات من اليوتيوب بأي جودة تختارها:
عليك في البداية تثبيت الحزمة من خلال الأمر التالي:


npm i ytdl-core@latest

# أو إذا كنت تستعمل yarn
yarn add ytdl-core@latest

بعد ذلك يمكنك أن تقوم بإستخدامها بالشكل التالي:


const fs = require('fs');
const ytdl = require('ytdl-core');

ytdl('https://www.youtube.com/watch?v=KKfAuQrwzTY')
  .pipe(fs.createWriteStream('video-file-name.mp4'));

يمكن حتى إستعمالها لتحميل فيديوهات Shorts بنفس الطريقة:


ytdl('https://www.youtube.com/shorts/h_ZoMlNjANY')
  .pipe(fs.createWriteStream('video-file-name-2.mp4'));

يمكنك كذلك التحكم في جودة الفيديو الذي سيتم تحميله:


const fs = require('fs');
const ytdl = require('ytdl-core');

ytdl('https://www.youtube.com/shorts/h_ZoMlNjANY', {
  quality: 'highest'
})
  .pipe(fs.createWriteStream('video.mp4'));

 

كيف استطيع ان اجعل الفيديو يقوم بالتحميل على نفس الجهاز مثل الهاتف وليس على اللاب توب لدي (هوست الموقع) ؟ 

  • 0
نشر
بتاريخ 6 ساعات قال Samer Alashqar:

كيف استطيع ان اجعل الفيديو يقوم بالتحميل على نفس الجهاز مثل الهاتف وليس على اللاب توب لدي (هوست الموقع) ؟ 

يمكنك اعتماد نفس الطريقة، مع تعديل بسيط.

  • حفظ الفيديو على السيرفر لأن الانترنت لديك سيكون سريع 
  • توجيه الفيديو للمتصفح 
  • حذف الفيديو من التخزين المحلي على السيرفر خاصتك

يمكنك اتباع هذه الشيفرة لإعادة توجيه الملف الذي حفظته في الخادم للمتصفح

res.setHeader('Content-Type', 'video/mp4');

res.status(200).sendFile(full_path, function (err) {
    if (err) { ... } else { ... }
});

ثم بعد نهايتها يمكنك حذف الملف بالدالة unlink من fs

fs.unlink(path, (err) => {
  if (err) throw err //handle your error the way you want to;
  console.log('path/file.txt was deleted');//or else the file will be deleted
    });
  );

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...