تقنية

كيفية تنزيل ملفات Podcasts تلقائيًا على Google Drive باستخدام جداول بيانات Google


يصف هذا البرنامج التعليمي كيف يمكنك استخدام جداول بيانات Google لإنشاء مدير البودكاست الخاص بك. يمكنك تحديد قائمة بعروض البودكاست المفضلة لديك في جداول بيانات Google وسيتم تنزيل الحلقات الجديدة تلقائيًا على Google Drive في مجلدات منظمة بعناية.

الإعداد بسيط للغاية، والتطبيق مفتوح المصدر تمامًا ولا تحتاج إلى لغة برمجة.

كيف يعمل مدير Podcast Drive؟

يجب عليك وضع روابط ملفات البودكاست المفضلة لديك في العمود A من ورقة Google كما هو موضح في لقطة الشاشة أدناه.

سيقوم التطبيق تلقائيًا بتنزيل أحدث حلقات كل بودكاست على Google Drive. يمكنك فتح ملفات MP3 من Google Drive أو العثور عليها مباشرة داخل نفس ورقة Google.

قائمة بودكاست جداول بيانات جوجل

سيقوم التطبيق بإنشاء مجلد جديد بعنوان Podcasts في جوجل درايف الخاص بك. داخل هذا المجلد، سيتم إنشاء مجلدات فرعية لكل عرض بودكاست باسم المجلد نفسه مثل عنوان البودكاست.

مجلد Google Drive Podcasts

قم بتنزيل ملفات البودكاست على Google Drive

إليك كيفية إنشاء مدير البودكاست الخاص بك باستخدام جداول بيانات Google وGoogle Drive.

  1. انقر هنا لعمل نسخة من ورقة Google في حساب Google الخاص بك.

  2. افتح جدول البيانات المنسوخ، وقم بالتبديل إلى Subscriptions ورقة وأدخل روابط موجز RSS للبودكاست المفضلة لديك في العمود A. يمكنك استخدام الأداة المساعدة Apple Podcasts Lookup للعثور على موجز RSS لأي بودكاست مدرج في Apple Podcasts.

  3. انتقل إلى قائمة الإضافات واختر Script Editor لفتح ملف Google Apps Script الأساسي.

  4. اختر Install وظيفة من قائمة الوظائف وانقر Run لتثبيت التطبيق. قد يتعين عليك ترخيص التطبيق مرة واحدة لأنه يحتاج إلى إذن لحفظ الملفات على Google Drive نيابةً عنك.

هذا كل شيء. سيقوم التطبيق بإنشاء مهمة cron يتم تشغيلها كل بضع ساعات في الخلفية وتنزيل أحدث حلقات ملفات البودكاست المفضلة لديك على Google Drive.

لدينا أيضًا مشغل MP3 مدمج داخل جداول بيانات Google والذي سيقوم بتشغيل أحدث حلقة من كل بودكاست عند النقر فوق Play زر.

مشغل MP3 في جداول بيانات Google

التفاصيل الفنية

إذا كنت مهتمًا بمعرفة كيفية عمل الأمر برمته، فإليك التفاصيل الفنية.

يستخدم التطبيق Spreadsheet API لقراءة قائمة ملفات البودكاست من جداول بيانات Google. ثم يستخدم خدمة XML الخاصة بـ Apps Script لتحليل موجز RSS واستخراج حلقات البودكاست الجديدة التي تم نشرها منذ آخر فحص.

يجب أن تحتوي جميع خلاصات RSS للبودكاست على <item> علامة مع <enclosure> علامة داخل. ال <enclosure> تحتوي العلامة على عنوان URL لملف MP3 وهذا ما يستخدمه التطبيق للحصول على عنوان URL لتنزيل الحلقة المقابلة.

const parseRSS = (xmlUrl, lastUpdatedTime) => {
  const feed = UrlFetchApp.fetch(xmlUrl).getContentText();
  const doc = XmlService.parse(feed);
  const root = doc.getRootElement();
  const channel = root.getChild('channel');
  const episodes = channel
    .getChildren('item')
    .map((item) => ({
      date: new Date(item.getChildText('pubDate')),
      title: item.getChildText('title'),
      enclosure: item.getChild('enclosure')?.getAttribute('url')?.getValue()
    }))
    .filter(({ date }) => date > lastUpdatedTime)
    .filter(({ enclosure }) => enclosure);
  return { title: channel.getChildText('title'), episodes };
};

بمجرد أن يحتوي التطبيق على قائمة بالحلقات الجديدة، فإنه يستخدم خدمة UrlFetch لتنزيل ملفات البودكاست وحفظها في Google Drive في مجلد خاص بعرض البودكاست.

يقوم التطبيق بعد ذلك بكتابة صف جديد في ورقة Google مع رابط ملف Google Drive وطابع زمني لوقت تنزيل الحلقة.

const getPodcastFolder = (folderName) => {
  const parentFolder = DriveApp.getFoldersByName('Podcasts').next();
  const folders = parentFolder.getFoldersByName(folderName);
  if (folders.hasNext()) return folders.next();
  return parentFolder.createFolder(folderName);
};

const downloadPodcast = (podcastTitle, episodeUrl, episodeTitle) => {
  try {
    const blob = UrlFetchApp.fetch(episodeUrl).getBlob();
    const folder = getPodcastFolder(podcastTitle);
    const file = folder.createFile(blob);
    SpreadsheetApp.getActiveSheet().appendRow([
      new Date(),
      `=HYPERLINK("${episodeUrl}";"${episodeTitle}")`,
      `https://drive.google.com/file/d/${file.getId()}/view`
    ]);
  } catch (f) {
    console.error(f);
  }
};



Source link

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى