
Media Analysis Reimagined
In today's rapidly evolving media landscape, understanding how different platforms shape public discourse has become crucial for informed citizenship. Traditional legacy media outlets - newspapers, television networks, and established digital publications - operate under editorial standards developed over decades. Meanwhile, social media platforms like X provide real-time, unfiltered reactions from millions of users, creating a dynamic environment where news spreads instantly but with varying degrees of accuracy and emotional intensity. This AI-powered app monitors top global headlines and finds corresponding X posts, comparing how the same stories are covered, discussed, and received across these fundamentally different media environments. By examining sentiment patterns, emotional responses, and narrative framing, we can discover hidden patterns that influence how society processes information, forms opinions, and makes decisions. This comparative approach doesn't seek to determine which platform is "better," but rather to illuminate how each contributes to the complex tapestry of modern news consumption, helping readers develop media literacy skills essential for navigating our interconnected information age. Specifically, news stories are analyzed for overall sentiment (on a 0-1 scale where 0=very negative, 1=very positive) as well as the dominant emotion expressed, from both legacy sources and X posts. The data is then filtered for news items that are covered substantially differently and conveniently displayed in a table below (see the Latest Data section) for users to peruse, along with a commentary on the differences. The data automatically updates each day at 10pm CST (to capture a full day's worth of news stories), and is automatically posted here as well as on our X account, @h45hb4ng_data. Note that while only stories with a substantial difference in coverage are displayed here (in the latest data section), the full data for each article is in the database in case you'd like to refer to it later. See the source for further details.
Latest Data
Comparison of world news coverage between legacy media outlets and social media discourse on X. Data is automatically updated daily at 10pm to capture evolving narratives based on a full day's worth of news headlines.
| Timestamp | Article Title | Legacy Sentiment | X Sentiment | Legacy Emotion | X Emotion | Analysis |
|---|---|---|---|---|---|---|
| April 15, 2026 @ 2:10PM | Some Locals Are Using AI to Protest Against Data Centers | 0.5 | 0.25 | Neutral | Anger | While the Gizmodo article adopts a neutral tone (sentiment 0.5) in reporting on locals using AI tools like deepfakes to protest data centers, reactions on X are predominantly negative towards data centers, with an average sentiment of 0.25. The most common dominant emotion is anger, fueled by concerns over environmental damage, resource consumption, and community disruption. A few posts mock the irony of protesters relying on AI-powered services, but the overall discourse is far more oppositional and emotionally charged than the article's balanced coverage. |
| April 15, 2026 @ 11:03AM | Trump says peace talks could resume in days as U.S. military blocks Iranian ports | 0.5 | 0.4 | Neutral | Fear | The NPR article adopts a neutral tone (sentiment 0.5) in reporting Middle East updates involving Iran, whereas X posts exhibit a slightly more negative average sentiment of 0.4, highlighting worries over escalating tensions. The most common dominant emotion on X is fear, fueled by discussions of Iran's empowered hardliners, potential war resumption, and economic disruptions like the Hormuz blockade. This contrasts sharply with the article's neutral stance, as users amplify alarmist narratives around regime defiance and regional instability. |
| April 15, 2026 @ 8:38PM | Middle East conflict causes a fluoride shortage for US drinking water | 0.3 | 0.55 | Concern | Joy | The article conveys concern with a sentiment of 0.3 about the potential health risks from the fluoride shortage. In contrast, X posts show a higher average sentiment of 0.55, largely driven by anti-fluoridation advocates who express joy or sarcastic relief over reduced fluoride in water, viewing it as beneficial rather than problematic. Neutral factual shares exist, but celebratory and mocking reactions dominate, flipping the article's worried tone. |
| April 15, 2026 @ 5:00PM | AI For The Skeptics: Attempting To Do Something Useful With It | 0.65 | 0.53 | Optimism | Skepticism | The article maintains an optimistic tone (sentiment 0.65) aimed at skeptics by demonstrating practical AI applications. X posts directly sharing the article mirror this mild positivity, but broader discussions on the topic reveal an average sentiment of 0.53 dominated by skepticism. Users frequently express caution regarding AI's reliability, hallucinations, and trustworthiness, contrasting the article's hopeful pragmatism with more prevalent doubts about real-world usefulness. |
Archive
To access data for a previous date, please refer to our account on X, which automatically posts the current day's data at 10pm CST daily.
Source Code
This project is completely open source and free. It requires only PHP, MySQL, and API keys for xAI and NewsAPI. It is webserver agnostic, so you can use Apache, nginx, or whatever else will run PHP. The code that automatically posts the data to X also requires an API key from X and the free software packages wkhtmltopdf/wkhtmltoimage and ImageMagick (if you're running Ubuntu, sudo apt install wkhtmltopdf imagemagick is quick and easy).
Here is a quick rundown on the files:
- config.php - set your API keys here
- database.php - database functions to connect to your MySQL server, uses the MySQLi PHP extension
- get_news.php - gets today's global news headlines from legacy source via NewsAPI
- index.php - this file, which acts as the primary frontend
- main.php - responsible for invoking the functions defined in get_news.php, xai_article.php, and xai_x_posts.php. This is the file you want to execute in your crontab
- table.php - handles the latest data table, index.php calls this file as an include
- xai_article.php - passes a legacy news article to the xAI API to perform sentiment and emotion analysis
- xai_x_posts.php - searches X (via xAI API) for posts describing a particular news story. Finds the average sentiment and dominant emotion among these posts
- x_post.php - responsible for automatically posting the data to X. This should also be executed via cron slightly after main.php. Personally, I run them at 10:00 pm and 10:05 pm. Note that this requires an X API key in config.php as well as the TwitterOAuth package (easy install via composer)