Six years later: an update from TSV DUWO 08
Hi everyone,
In 2020, I shared our infoscreen next to the club’s locker rooms. Integrating fussball.de was still an idea. With help from ChatGPT Plus, it has now become an automated system.
Architecture
Club website + Instagram API + fussball.de → hourly Python jobs on my Mac → info-beamer Hosted → Raspberry Pi and screen.
The setup uses the standard HD Image/Video Player with two playlists:
-
Club news: five website articles and five Instagram posts, sorted together by publication date, with images, carousel slides and short videos.
-
Football fixtures: upcoming matches, a youth overview, home/away weekend overviews and individual match graphics.
Matchday features
The graphics include club and joint-team logos, date and kickoff time, venue and address, home/away badges, competition type and current league positions where available. Away-match graphics have Google Maps navigation QR codes.
Changes to kickoff times and venues are highlighted, as are cancellations. Each team has one individual slide for its next selected match. Fixtures remain visible until Monday, so weekend information is still available after the games.
The Power Saver keeps fixed weekday training hours. Weekend hours are calculated automatically from home fixtures at our ground, including dynamically discovered youth teams: one hour before kickoff until one hour after the estimated final whistle, rounded to whole hours.
Only changed media is uploaded, allowing the Raspberry to reuse its cache—important with our weak connection. Old unused assets are cleaned up automatically.
WordPress and Instagram exports
We also built a custom WordPress plugin. It receives authenticated uploads and provides fixed public image URLs and shortcodes for team graphics and overview pages. Two WordPress websites update automatically.
The same data generates separate portrait graphics for Instagram posts and Stories, ready for manual posting.
How ChatGPT Plus helped
ChatGPT Plus helped develop the Python scripts and WordPress plugin, refine layouts, write tests and troubleshoot problems. Being able to describe an issue and improve the implementation step by step made a big difference.
The running system itself uses no AI. Ordinary Python programs handle updates, rendering, uploads, cleanup and local notifications. The Mac generates the content; the Raspberry plays downloaded media and can continue playback temporarily offline.
A special thank you to the info-beamer team for the API, fine-grained access controls through ACLs and policies, detailed documentation, and helpful community support. Scoped API permissions let the automation access only the resources it needs. Combined with reusable packages, playlists and local media caching, this provides a flexible foundation for a small club project that has grown considerably since 2020!