تحلیل احساسات نظرات یوتیوب با هوش مصنوعی Gemini

تحلیل احساسات نظرات یوتیوب با هوش مصنوعی Gemini

10 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۹

دانلود workflow

فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.

  1. فایل JSON را دانلود کنید.
  2. در n8n: Workflows → Import from File.
  3. Credentialهای هر node را متصل کنید.
  4. workflow را فعال کنید.

شناسه workflow: 6086 · منبع: کاتالوگ Axeto

تحلیل احساسات نظرات یوتیوب با Gemini AI و Google Sheets

این گردش کار n8n فرآیند استخراج، تحلیل احساسات و ذخیره نظرات ویدیوهای یوتیوب را خودکار می‌کند. این ابزار برای تولیدکنندگان محتوا، مدیران شبکه‌های اجتماعی، تیم‌های بازاریابی و آژانس‌هایی که به دنبال درک عمیق‌تر بازخورد مخاطبان فراتر از معیارهای اولیه تعامل هستند، ایده‌آل است.

ویژگی‌های کلیدی:

  • دریافت خودکار داده‌ها: بازیابی URL ویدیوها از Google Sheets.
  • یکپارچه‌سازی YouTube API: دریافت نظرات برای ویدیوهای مشخص شده.
  • تحلیل احساسات مبتنی بر هوش مصنوعی: استفاده از Google Gemini AI برای دسته‌بندی احساسات نظرات (مثبت، خنثی، منفی).
  • ذخیره‌سازی نتایج: ذخیره نظرات تحلیل شده و احساسات آن‌ها در یک Google Sheet.
  • پیگیری وضعیت: به‌روزرسانی وضعیت پردازش ویدیو در Google Sheets برای جلوگیری از پردازش مجدد.

---

نمای کلی گردش کار

این گردش کار به سه بلوک منطقی اصلی تقسیم می‌شود:

1. دریافت و فیلتر ورودی: جمع‌آوری URL ویدیوها از یک Google Sheet و اعتبارسنجی آن‌ها.

2. دریافت نظرات یوتیوب: بازیابی نظرات برای هر URL ویدیوی معتبر با استفاده از YouTube API.

3. تحلیل احساسات و ذخیره‌سازی داده‌ها: تحلیل احساسات نظرات با Gemini AI و ذخیره نتایج، همراه با به‌روزرسانی وضعیت پردازش ویدیو.

---

تشریح جزئی گره‌ها (Nodes)

بلوک ۱: دریافت و فیلتر ورودی

این بخش بر شروع اجرای گردش کار و آماده‌سازی URL ویدیوها برای پردازش تمرکز دارد.

  • Manual Trigger

* نوع: n8n-nodes-base.manualTrigger

* نقش: اجرای دستی گردش کار را آغاز می‌کند.

* پیکربندی: تنظیمات پیش‌فرض.

* ورودی: ندارد.

* خروجی: گره "Get Video URLs" را فعال می‌کند.

* نکات: برای تست یا شروع گردش کار از این گره استفاده کنید.

  • Get Video URLs

* نوع: n8n-nodes-base.googleSheets

* نقش: URL ویدیوها را از یک تب مشخص Google Sheet که ستون 'status' آن روی "Ready" تنظیم شده است، می‌خواند.

* پیکربندی:

* Document ID: شناسه منحصر به فرد Google Sheet شما.

* Sheet Name: نام تب حاوی URL ویدیوها (مثلاً "Video URLs").

* Filter: ستون status برابر با "Ready".

* ورودی: خروجی "Manual Trigger".

* خروجی: لیستی از ردیف‌ها از Google Sheet حاوی URL ویدیوهای علامت‌گذاری شده به عنوان "Ready".

* اعتبارنامه‌ها (Credentials): نیاز به اعتبارنامه‌های Google Sheets OAuth2 دارد.

* موارد لبه‌ای (Edge Cases): در صورت عدم وجود ردیف‌های با وضعیت "Ready"، هیچ ردیفی برگردانده نمی‌شود؛ خطاهای احتمالی اتصال به Google Sheets API یا مشکلات مجوز.

  • Check If Video URL is Not Empty

* نوع: n8n-nodes-base.if

* نقش: اعتبارسنجی می‌کند که هر URL ویدیوی بازیابی شده قبل از ادامه، خالی نباشد.

* پیکربندی: بررسی می‌کند که آیا فیلد video_url خالی نیست (با استفاده از اعتبارسنجی نوع شلخته).

* ورودی: خروجی "Get Video URLs".

* خروجی:

* شاخه True: URLهای غیر خالی را به گره "Loop Over Items" ارسال می‌کند.

* شاخه False: URLهای خالی را فیلتر می‌کند و پردازش بیشتر برای آن موارد را متوقف می‌کند.

* نکات: اطمینان حاصل می‌کند که فقط URLهای معتبر به مرحله بعدی ارسال می‌شوند.

بلوک ۲: دریافت نظرات یوتیوب

این بلوک مسئول بازیابی نظرات از یوتیوب برای هر URL ویدیوی معتبر است.

  • Loop Over Items

* نوع: n8n-nodes-base.splitInBatches

* نقش: هر URL ویدیو را به صورت جداگانه پردازش می‌کند تا محدودیت‌های نرخ API را مدیریت کرده و پردازش متوالی را تضمین کند.

* پیکربندی: تنظیمات پیش‌فرض دسته‌بندی (معمولاً یک مورد در هر دسته پردازش می‌شود).

* ورودی: خروجی شاخه "True" از "Check If Video URL is Not Empty".

* خروجی: یک URL ویدیو در هر بار به گره "HTTP Request - Get Comments" ارسال می‌کند.

* نکات: اندازه دسته قابل تنظیم را می‌توان برای بهبود عملکرد تنظیم کرد.

  • HTTP Request - Get Comments

* نوع: n8n-nodes-base.httpRequest

* نقش: یک درخواست احراز هویت شده به YouTube Data API v3 برای دریافت نظرات یک ویدیوی مشخص ارسال می‌کند.

* پیکربندی:

* Method: GET

* URL: https://www.googleapis.com/youtube/v3/commentThreads

* Query Parameters:

* part=snippet

* videoId: به صورت پویا از video_url با استفاده از یک عبارت منظم استخراج می‌شود.

* maxResults=100 (یا در صورت نیاز تنظیم شود)

* Authentication: اعتبارنامه‌های YouTube API OAuth2.

* Pagination: برای مدیریت صفحات متعدد نظرات با استفاده از pageToken در صورت وجود nextPageToken در پاسخ، پیکربندی شده است.

* ورودی: URL ویدیوی فعلی از گره "Loop Over Items".

* خروجی: پاسخ خام API حاوی رشته‌های نظر.

* اعتبارنامه‌ها (Credentials): نیاز به اعتبارنامه‌های YouTube Data API OAuth2 دارد.

* موارد لبه‌ای (Edge Cases): محدودیت‌های نرخ YouTube API، شناسه‌های ویدیوی نامعتبر، خرابی احراز هویت، مهلت زمانی شبکه، بخش‌های نظر خالی.

  • Check If - Success Response

* نوع: n8n-nodes-base.if

* نقش: تأیید می‌کند که درخواست HTTP به YouTube API کد وضعیت موفقیت‌آمیز (200) را برگردانده است.

* پیکربندی: statusCode از پاسخ HTTP Request را با 200 مقایسه می‌کند.

* ورودی: پاسخ از "HTTP Request - Get Comments".

* خروجی:

* شاخه True: پاسخ موفق را به گره "Split Out" ارسال می‌کند.

* شاخه False: پردازش برای این URL ویدیو را در صورت عدم موفقیت پاسخ متوقف می‌کند.

* نکات: برای مدیریت خطا و جلوگیری از پردازش فراخوانی‌های ناموفق API ضروری است.

  • Split Out

* نوع: n8n-nodes-base.splitOut

* نقش: آرایه items (حاوی رشته‌های نظر) را از پاسخ YouTube API استخراج کرده و آن را به اشیاء نظر جداگانه تقسیم می‌کند.

* پیکربندی: بر اساس فیلد body.items تقسیم می‌کند.

* ورودی: پاسخ موفق از "Check If - Success Response".

* خروجی: اشیاء نظر جداگانه، هر کدام آماده برای تحلیل احساسات.

* موارد لبه‌ای (Edge Cases): اگر آرایه items خالی یا ناموجود باشد، این گره هیچ خروجی نخواهد داشت، که توسط گره بعدی "Check If - Comment Exists" مدیریت می‌شود.

بلوک ۳: تحلیل احساسات و ذخیره‌سازی داده‌ها

این بلوک نهایی تحلیل احساسات را انجام داده و Google Sheet را با نتایج به‌روز می‌کند.

  • Check If - Comment Exists

* نوع: n8n-nodes-base.if

* نقش: بررسی می‌کند که آیا در واقع هیچ نظری برای ویدیو بازیابی شده است یا خیر.

* پیکربندی: وجود فیلد snippet.videoId در داده‌های نظر بررسی می‌کند.

* ورودی: خروجی گره "Split Out" (نظرات جداگانه).

* خروجی:

* شاخه True: به تحلیل احساسات برای نظرات موجود ادامه می‌دهد.

* شاخه False: بلافاصله گره "Update Video Status" را فعال می‌کند و ویدیو را حتی در صورت عدم یافتن نظر، به عنوان پردازش شده علامت‌گذاری می‌کند.

* نکات: ویدیوهایی را که هیچ نظری ندارند به طور موثر مدیریت می‌کند.

  • Google Gemini Chat Model

* نوع: @n8n/n8n-nodes-langchain.lmChatOpenAi (توجه: این گره برای مدل‌های مختلف LLM، از جمله Gemini از طریق Langchain استفاده می‌شود)

* نقش: برای پردازش متن به مدل Google Gemini AI متصل می‌شود.

* پیکربندی:

* Model Name: models/gemini-2.0-flash (یا سایر مدل‌های Gemini موجود).

* سایر تنظیمات LLM: در صورت نیاز پیکربندی کنید (مثلاً دما).

* ورودی: متن نظر را از گره "AI Agent - Analyze Sentiment Of Every Comment" دریافت می‌کند.

* خروجی: متن پردازش شده یا جاسازی‌ها (embeddings) از مدل Gemini.

* اعتبارنامه‌ها (Credentials): نیاز به اعتبارنامه‌های Google PaLM API (یا Gemini API) دارد.

* موارد لبه‌ای (Edge Cases): محدودیت‌های سهمیه API، خطاهای احراز هویت، مهلت زمانی پاسخ مدل.

  • AI Agent - Analyze Sentiment Of Every Comment

* نوع: @n8n/n8n-nodes-langchain.sentimentAnalysis

* نقش: از LLM پیکربندی شده (Google Gemini) برای تحلیل احساسات هر نظر استفاده می‌کند.

* پیکربندی:

* Categories: Positive, Neutral, Negative.

* System Prompt: یک اعلان سفارشی که LLM را برای خروجی دادن یک شیء JSON واحد حاوی طبقه‌بندی احساسات هدایت می‌کند. مثال: "Analyze the sentiment of the following comment and classify it as Positive, Neutral, or Negative. Respond ONLY with a JSON object like {\"sentiment\": \"Positive\"}."

* Input Text: به فیلد متن اصلی نظر نگاشت می‌شود (مثلاً {{$json.snippet.topLevelComment.snippet.textOriginal}}).

* ورودی: خروجی گره "Google Gemini Chat Model" (یا مستقیماً متن نظر را در صورت پیکربندی تغذیه می‌کند).

* خروجی: طبقه‌بندی احساسات (مثلاً "Positive", "Neutral", "Negative") که به داده‌های نظر اضافه شده است.

* موارد لبه‌ای (Edge Cases): LLM ممکن است اعلان را اشتباه تفسیر کند، پاسخ‌های نامعتبر برگرداند، یا با خطاهای API مواجه شود.

  • Insert Comment Data & Analysis

* نوع: n8n-nodes-base.googleSheets

* نقش: داده‌های نظر تحلیل شده، از جمله احساسات را به یک تب "Results" در Google Sheet اضافه یا به‌روزرسانی می‌کند.

* پیکربندی:

* Operation: Append or Update (با استفاده از comment_id به عنوان کلید برای به‌روزرسانی‌ها).

* Sheet Name: نام تب برای ذخیره نتایج (مثلاً "Results").

* Column Mapping: فیلدهایی مانند video_url, comment_id, comment_text, author_name, likes_count, reply_count, sentiment_category (از تحلیل هوش مصنوعی) و published_at را به ستون‌های مربوطه در Google Sheet نگاشت می‌کند.

* ورودی: داده‌های نظر با احساسات تحلیل شده.

* اعتبارنامه‌ها (Credentials): نیاز به اعتبارنامه‌های Google Sheets OAuth2 دارد.

* موارد لبه‌ای (Edge Cases): محدودیت‌های سهمیه Google Sheets API، خطاهای مجوز، مدیریت comment_idهای تکراری در صورت عدم پیکربندی برای به‌روزرسانی.

  • Update Video Status

* نوع: n8n-nodes-base.googleSheets

* نقش: وضعیت URL ویدیوی پردازش شده را در تب "Video URLs" به "Finished" به‌روزرسانی کرده و زمان آخرین دریافت را ثبت می‌کند.

* پیکربندی:

* Operation: Update

* Sheet Name: نام تب حاوی URL ویدیوها (مثلاً "Video URLs").

* Match by: row_number (برای اطمینان از به‌روزرسانی ردیف صحیح).

* Fields to Update:

* status: روی "Finished" تنظیم می‌شود.

* last_fetched_time: روی زمان فعلی (قالب‌بندی شده مناسب) تنظیم می‌شود.

* ورودی: پس از اتمام پردازش نظر یا در صورت عدم یافتن نظر فعال می‌شود.

* اعتبارنامه‌ها (Credentials): نیاز به اعتبارنامه‌های Google Sheets OAuth2 دارد.

* موارد لبه‌ای (Edge Cases): تداخل قفل شیت، تطابق نادرست ردیف، مشکلات مجوز.

---

جدول خلاصه

| نام گره (Node Name) | نوع گره (Node Type) | نقش عملکردی | گره(های) ورودی (Input Node(s)) | گره(های) خروجی (Output Node(s)) | یادداشت چسبنده (Sticky Note)

:----------------------------------:------------------------------------:-----------------------------------------------:----------------------------------------:-----------------------------------------------------------:---------------------------------
Get Video URLsn8n-nodes-base.googleSheetsخواندن URL ویدیوها از Google SheetManual TriggerCheck If Video URL is Not Emptyنیاز به اعتبارنامه‌های Google Sheets دارد.
Check If Video URL is Not Emptyn8n-nodes-base.ifاعتبارسنجی خالی نبودن URL ویدیوGet Video URLsLoop Over Items (True), فیلتر (False)اطمینان از ارسال URLهای معتبر.
Loop Over Itemsn8n-nodes-base.splitInBatchesپردازش هر URL ویدیو به صورت جداگانهCheck If Video URL is Not Empty (True)HTTP Request - Get Commentsمدیریت محدودیت‌های نرخ API.
HTTP Request - Get Commentsn8n-nodes-base.httpRequestدریافت نظرات از YouTube APILoop Over ItemsCheck If - Success Responseنیاز به اعتبارنامه‌های YouTube API دارد.
Check If - Success Responsen8n-nodes-base.ifبررسی موفقیت‌آمیز بودن پاسخ APIHTTP Request - Get CommentsSplit Out (True), توقف (False)مدیریت خطای API.
Split Outn8n-nodes-base.splitOutاستخراج و تقسیم نظرات از پاسخ APICheck If - Success Response (True)Check If - Comment Existsآماده‌سازی نظرات برای پردازش.
Check If - Comment Existsn8n-nodes-base.ifبررسی وجود نظرات بازیابی شدهSplit OutGoogle Gemini Chat Model (True), Update Video Status (False)مدیریت ویدیوهای بدون نظر.
Google Gemini Chat Model@n8n/n8n-nodes-langchain.lmChatOpenAiاتصال به مدل Gemini برای پردازش متنAI Agent - Analyze Sentiment Of Every Comment-نیاز به اعتبارنامه‌های Gemini API دارد.
AI Agent - Analyze Sentiment Of Every Comment@n8n/n8n-nodes-langchain.sentimentAnalysisتحلیل احساسات نظرات با Gemini AICheck If - Comment Exists (True)Insert Comment Data & Analysisپیکربندی اعلان سیستم برای JSON.
Insert Comment Data & Analysisn8n-nodes-base.googleSheetsذخیره نظرات تحلیل شده در Google SheetAI Agent - Analyze Sentiment Of Every CommentUpdate Video Statusنیاز به اعتبارنامه‌های Google Sheets دارد.
Update Video Statusn8n-nodes-base.googleSheetsبه‌روزرسانی وضعیت ویدیو به "Finished"Check If - Comment Exists (False), Insert Comment Data & Analysis-نیاز به اعتبارنامه‌های Google Sheets دارد.

Nodeهای استفاده‌شده

سوالات متداول

این گردش کار n8n چه کاری انجام می‌دهد؟

این گردش کار n8n فرآیند استخراج نظرات ویدیوهای یوتیوب، تحلیل احساسات آن‌ها با استفاده از هوش مصنوعی Gemini و ذخیره نتایج در یک Google Sheet را خودکار می‌کند.

چه ابزارهایی برای اجرای این گردش کار لازم است؟

شما به n8n، دسترسی به YouTube Data API v3، Google Gemini AI و یک Google Sheet برای ورودی و خروجی نیاز دارید.

چگونه می‌توانم از این گردش کار برای ویدیوهای خاص استفاده کنم؟

با قرار دادن URL ویدیوها در یک ستون مشخص از Google Sheet و علامت‌گذاری وضعیت آن‌ها به عنوان "Ready"، گردش کار به طور خودکار آن‌ها را پردازش می‌کند.

چه نوع تحلیل احساساتی ارائه می‌شود؟

هوش مصنوعی Gemini نظرات را به سه دسته اصلی تقسیم می‌کند: مثبت، خنثی و منفی.

workflowهای مرتبط

این workflow در کاتالوگ Axeto.ai بایگانی شده است. لایسنس اصلی متعلق به سازنده workflow است.