Automated Social Media Report: Generating PDF Summaries for Clients
Welcome to Day 30! You made it. Over the last month, we've built scripts to scrape YouTube, TikTok, Instagram, LinkedIn, and more. Today, we bring it all together.
We're building the **"CMO Dashboard"āa script that pulls high-level metrics from every platform and compiles them into a clean, professional report. This is the power of social media data extraction for agencies.
Prerequisites
You'll need a SociaVault API Key and handles for all the platforms you want to track.
The Master Script
This Node.js script aggregates data and uses pdfkit (simulated here via console output) to generate a report.
generate-report.js
const axios = require('axios');
// CONFIGURATION
const API_KEY = 'YOUR_SOCIAVAULT_API_KEY';
const CLIENT = {
name: "TechStart Inc.",
youtube: "@TechStart",
tiktok: "techstart_official",
instagram: "techstart.io"
};
const headers = {
'x-api-key': API_KEY,
'Content-Type': 'application/json'
};
async function generateReport() {
try {
console.log(`š Generating Monthly Report for: ${CLIENT.name}`);
const reportDate = new Date().toLocaleDateString();
const metrics = {
youtube: { followers: 0, views: 0 },
tiktok: { followers: 0, likes: 0 },
instagram: { followers: 0, posts: 0 }
};
// --- STEP 1: Fetch YouTube Data ---
console.log(' ...Fetching YouTube Data');
const ytUrl = `https://api.sociavault.com/v1/scrape/youtube/channel?handle=${CLIENT.youtube}`;
try {
const ytRes = await axios.get(ytUrl, { headers });
metrics.youtube.followers = ytRes.data.data.subscriberCount || 0;
metrics.youtube.views = ytRes.data.data.viewCount || 0;
} catch (e) { console.log(' (YouTube Fetch Failed)'); }
// --- STEP 2: Fetch TikTok Data ---
console.log(' ...Fetching TikTok Data');
const ttUrl = `https://api.sociavault.com/v1/scrape/tiktok/profile?handle=${CLIENT.tiktok}`;
try {
const ttRes = await axios.get(ttUrl, { headers });
metrics.tiktok.followers = ttRes.data.data.userInfo.stats.followerCount || 0;
metrics.tiktok.likes = ttRes.data.data.userInfo.stats.heartCount || 0;
} catch (e) { console.log(' (TikTok Fetch Failed)'); }
// --- STEP 3: Fetch Instagram Data ---
console.log(' ...Fetching Instagram Data');
const igUrl = `https://api.sociavault.com/v1/scrape/instagram/profile?handle=${CLIENT.instagram}`;
try {
const igRes = await axios.get(igUrl, { headers });
metrics.instagram.followers = igRes.data.data.followers_count || 0;
metrics.instagram.posts = igRes.data.data.media_count || 0;
} catch (e) { console.log(' (Instagram Fetch Failed)'); }
// --- STEP 4: Generate Report Output ---
const totalFollowers = metrics.youtube.followers + metrics.tiktok.followers + metrics.instagram.followers;
console.log(`\n========================================`);
console.log(` MONTHLY SOCIAL PERFORMANCE REPORT`);
console.log(` Client: ${CLIENT.name}`);
console.log(` Date: ${reportDate}`);
console.log(`========================================`);
console.log(`\nš TOTAL AUDIENCE: ${totalFollowers.toLocaleString()}`);
console.log(`\nš„ YOUTUBE`);
console.log(` - Subscribers: ${metrics.youtube.followers.toLocaleString()}`);
console.log(` - Total Views: ${metrics.youtube.views.toLocaleString()}`);
console.log(`\nšµ TIKTOK`);
console.log(` - Followers: ${metrics.tiktok.followers.toLocaleString()}`);
console.log(` - Total Likes: ${metrics.tiktok.likes.toLocaleString()}`);
console.log(`\nšø INSTAGRAM`);
console.log(` - Followers: ${metrics.instagram.followers.toLocaleString()}`);
console.log(` - Total Posts: ${metrics.instagram.posts.toLocaleString()}`);
console.log(`\n========================================`);
console.log(` END OF REPORT`);
console.log(`========================================`);
} catch (error) {
console.error('Error generating report:', error.message);
}
}
generateReport();
Conclusion
Congratulations! You have completed the 30-Day Social Media Content Challenge. You now have a library of 30 powerful scripts that can:
- Find Content Ideas (Reddit, Quora, YouTube Search).
- Analyze Competitors (Ad Library, LinkedIn Growth).
- Optimize Performance (Peak Hours, Hashtags).
- Automate Reporting (This script!).
You are no longer just a "Content Creator." You are a Data-Driven Media Operator. Go build something massive. š
Found this helpful?
Share it with others who might benefit
Ready to Try SociaVault?
Start extracting social media data with our powerful API. No credit card required.