| import datetime |
| import traceback |
| def keyword_prompt(video_info, summarization): |
| keyword_prompt = f""" |
| You are given a summary of a YouTube video. |
| Your task is to identify the **main subject (person, company, or concept)** that the video is about. |
| Only return a **single keyword** (preferably a named entity such as a person, brand, or organization). |
| |
| Video Info: |
| {video_info} |
| |
| Video Summary: |
| {summarization} |
| |
| Return only one keyword that best represents the **main focus** of the video content. |
| """ |
| return keyword_prompt |
|
|
| def analysis_prompt(video_info, summarization, news, comments_text): |
| analysis_prompt = f""" |
| Analyze YouTube video information, summary, comments, and related latest news to create a Markdown format report. |
| |
| Video Info: {video_info} |
| |
| Video Summary: |
| {summarization} |
| |
| Latest News: |
| {news} |
| |
| Comments: |
| {comments_text} |
| |
| Please write in the following format: |
| |
| # π¬ YouTube Video Analysis Report |
| |
| ## π Key Keywords |
| `keyword` |
| |
| ## π― Video Overview |
| [Summary of main video content] |
| |
| ## π¬ Comment Sentiment Analysis |
| |
| ### π Sentiment Distribution |
| - **Positive**: X% |
| - **Negative**: Y% |
| - **Neutral**: Z% |
| |
| ### π Key Comment Insights |
| 1. **Positive Reactions**: [Summary of main positive comments] |
| 2. **Negative Reactions**: [Summary of main negative comments] |
| 3. **Core Issues**: [Main topics found in comments] |
| |
| ### π Comments |
| 1. Positive Comments: [Positive comments with sentiment classification and reasoning] |
| 2. Negative Comments: [Negative comments with sentiment classification and reasoning] |
| 3. Neutral Comments: [Neutral comments with sentiment classification and reasoning] |
| |
| ## π° Latest News Relevance |
| [Analysis of correlation between news and video/comments] |
| |
| ## π‘ Key Insights |
| 1. [First major finding] |
| 2. [Second major finding] |
| 3. [Third major finding] |
| |
| # ## π― Business Intelligence |
| |
| # ### Opportunity Factors |
| # - [Business opportunity 1] |
| # - [Business opportunity 2] |
| |
| # ### Risk Factors |
| # - [Potential risk 1] |
| # - [Potential risk 2] |
| |
| # ## π Recommended Actions |
| # 1. **Immediate Actions**: [Actions needed within 24 hours] |
| # 2. **Short-term Strategy**: [Execution plan within 1 week] |
| # 3. **Long-term Strategy**: [Long-term plan over 1 month] |
| --- |
| **Analysis Completed**: {datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")} |
| """ |
|
|
| return analysis_prompt |
|
|
| def analysis_prompt(video_info, summarization, news, comments_text): |
| analysis_prompt = f""" |
| Analyze YouTube video information, summary, comments, and related latest news to create a Markdown format report. |
| |
| Video Info: {video_info} |
| |
| Video Summary: |
| {summarization} |
| |
| Latest News: |
| {news} |
| |
| Comments: |
| {comments_text} |
| |
| Please write in the following format: |
| |
| # π¬ YouTube Video Analysis Report |
| |
| ## π Key Keywords |
| `keyword` |
| |
| ## π― Video Overview |
| [Summary of main video content] |
| |
| ## π¬ Comment Sentiment Analysis |
| |
| ### π Sentiment Distribution |
| - **Positive**: X% |
| - **Negative**: Y% |
| - **Neutral**: Z% |
| |
| ### π Key Comment Insights |
| 1. **Positive Reactions**: [Summary of main positive comments] |
| 2. **Negative Reactions**: [Summary of main negative comments] |
| 3. **Core Issues**: [Main topics found in comments] |
| |
| ### π Comments |
| 1. Positive Comments: [Positive comments with sentiment classification and reasoning] |
| 2. Negative Comments: [Negative comments with sentiment classification and reasoning] |
| 3. Neutral Comments: [Neutral comments with sentiment classification and reasoning] |
| |
| ## π° Latest News Relevance |
| [Analysis of correlation between news and video/comments] |
| |
| ## π‘ Key Insights |
| 1. [First major finding] |
| 2. [Second major finding] |
| 3. [Third major finding] |
| |
| # ## π― Business Intelligence |
| |
| # ### Opportunity Factors |
| # - [Business opportunity 1] |
| # - [Business opportunity 2] |
| |
| # ### Risk Factors |
| # - [Potential risk 1] |
| # - [Potential risk 2] |
| |
| # ## π Recommended Actions |
| # 1. **Immediate Actions**: [Actions needed within 24 hours] |
| # 2. **Short-term Strategy**: [Execution plan within 1 week] |
| # 3. **Long-term Strategy**: [Long-term plan over 1 month] |
| --- |
| **Analysis Completed**: {datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")} |
| """ |
|
|
| return analysis_prompt |
|
|
|
|
|
|
| def error_message(video_id): |
| error_msg = f""" |
| # β Analysis Failed |
| |
| **Error Message:** {str(e)} |
| |
| **Debug Information:** |
| - Video ID: {video_id} |
| - Time: {datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")} |
| |
| **Check Items:** |
| 1. Verify YouTube Video ID is correct |
| 2. Verify API key is valid |
| 3. Check network connection |
| |
| **Detailed Error:** |
| ``` |
| {traceback.format_exc()} |
| ``` |
| """ |
| return error_msg |
|
|
|
|
| def analysis_prompt2(content_type, all_comments ): |
| analysis_prompt = f""" |
| Please analyze the sentiment of the following {content_type} comments in detail: |
| |
| {all_comments} |
| |
| Please write detailed analysis results in the following format: |
| |
| ### π Sentiment Distribution |
| - **Positive**: X% (specific numbers) |
| - **Negative**: Y% (specific numbers) |
| - **Neutral**: Z% (specific numbers) |
| |
| ### π Sentiment-based Comment Analysis |
| |
| #### π Positive Comments |
| **Representative Comment Examples:** |
| - "Actual comment 1" β Reason for positive classification |
| - "Actual comment 2" β Reason for positive classification |
| - "Actual comment 3" β Reason for positive classification |
| |
| **Main Positive Keywords:** keyword1, keyword2, keyword3 |
| |
| #### π‘ Negative Comments |
| **Representative Comment Examples:** |
| - "Actual comment 1" β Reason for negative classification |
| - "Actual comment 2" β Reason for negative classification |
| - "Actual comment 3" β Reason for negative classification |
| |
| **Main Negative Keywords:** keyword1, keyword2, keyword3 |
| |
| #### π Neutral Comments |
| **Representative Comment Examples:** |
| - "Actual comment 1" β Reason for neutral classification |
| - "Actual comment 2" β Reason for neutral classification |
| |
| **Main Neutral Keywords:** keyword1, keyword2, keyword3 |
| |
| ### π‘ Key Insights |
| 1. **Sentiment Trends**: [Overall sentiment trend analysis] |
| 2. **Main Topics**: [Most mentioned issues in comments] |
| 3. **Viewer Reactions**: [Main interests or reactions of viewers] |
| |
| ### π Summary |
| **One-line Summary:** [Summarize overall comment sentiment and main content in one sentence]""" |
| return analysis_prompt |
|
|
|
|
|
|
| def channel_markdown_result(videos, total_video_views, avg_video_views, videos_text, shorts, total_shorts_views, avg_shorts_views, shorts_text, video_sentiment, shorts_sentiment): |
| markdown_result = f"""# π YouTube Channel Analysis Report |
| |
| ## π¬ Latest Regular Videos ({len(videos)} videos) |
| **Total Views**: {total_video_views:,} | **Average Views**: {avg_video_views:,.0f} |
| |
| {videos_text} |
| |
| --- |
| |
| ## π― Latest Shorts ({len(shorts)} videos) |
| **Total Views**: {total_shorts_views:,} | **Average Views**: {avg_shorts_views:,.0f} |
| |
| {shorts_text} |
| |
| --- |
| |
| ## π¬ Comment Sentiment Analysis |
| |
| ### πΊ Regular Video Comment Reactions |
| {video_sentiment} |
| |
| ### π± Shorts Comment Reactions |
| {shorts_sentiment} |
| |
| --- |
| |
| ## π‘ Key Insights |
| - **Regular Video Average**: {avg_video_views:,.0f} views |
| - **Shorts Average**: {avg_shorts_views:,.0f} views |
| - **Performance Comparison**: {"Regular videos perform better" if avg_video_views > avg_shorts_views else "Shorts perform better" if avg_shorts_views > avg_video_views else "Similar performance"} |
| |
| --- |
| **Analysis Completed**: {datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")} |
| """ |
| return markdown_result |