Files
tsv08kulmbach-website/data/instagram.json
fs fef80bf669 Instagram: Scraper raus, Beitraege einzeln ueber oEmbed aufnehmen
bin/instagram-sync.php lieferte seit dem 03.09.2026 bei jedem Lauf "Keine Posts
ermittelbar". Von einem privaten Anschluss gegengeprueft: feed/user und
web_profile_info antworten mit 401 require_login, das Profil-HTML traegt keine
Beitragsdaten mehr, auch /embed/ liefert nur noch eine App-Huelle. Es lag also
nicht an der Server-IP, und der Scraper ist geloescht, damit ihn niemand
wiederbelebt. Graph API (Meta-Konto noetig) und kommerzielle Dienste wurden
verworfen.

Neu: bin/instagram-add.php. --profil liest die Beitragsliste ueber headless
Chrome aus dem gerenderten Profil-DOM (im HTML stehen die Codes nicht) und holt
zu jedem neuen Beitrag Bild, Caption und Datum ueber Instagrams oEmbed-Endpunkt;
das Datum steckt in der media_id. Daneben einzelne URLs, --liste, --entfernen und
--bild als Notfall. Der Shortcode ist Primaerschluessel und damit die komplette
Dedupe-Logik. Die Struktur von data/instagram.json bleibt exakt gleich, deshalb
war an Startseite, News-Feed und Stadionzeitung nichts zu aendern.

Kein Cron mehr: der Job faellt aus public/cron.php, auf dem Webspace gibt es kein
Chrome. Die Chrome-Suche liegt jetzt gemeinsam in bin/chrome-lib.php, genutzt von
bin/logo-build.php und bin/instagram-add.php.

data/instagram.json ist ab jetzt versioniert. Solange sie ignoriert war, lief sie
gegen die versionierten Bilder auseinander: lokal lagen 10 Bilder zu 9 Eintraegen,
drei Beitraege fehlten im Feed, zwei Eintraege hatten kein Bild. Repariert, jetzt
16 Eintraege zu 16 Bildern. bin/preflight.php prueft das in beide Richtungen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J9mubC8gtpjtJntbhSJBRS
2026-09-17 11:23:12 +02:00

151 lines
7.3 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"fetched_at": 1789636733,
"username": "tsv08kulmbach",
"posts": [
{
"shortcode": "DdROjQqjI1_",
"caption": "Ergebnisse 🔴⚫️",
"alt": "Ergebnisse 🔴⚫️",
"taken_at": 1789391962,
"is_video": false,
"image": "img/instagram/DdROjQqjI1_.jpg",
"url": "https://www.instagram.com/p/DdROjQqjI1_/"
},
{
"shortcode": "DdHvGEDDLIh",
"caption": "🔴⚫️-Programm am Wochenende",
"alt": "🔴⚫️-Programm am Wochenende",
"taken_at": 1789073480,
"is_video": false,
"image": "img/instagram/DdHvGEDDLIh.jpg",
"url": "https://www.instagram.com/p/DdHvGEDDLIh/"
},
{
"shortcode": "DdB5NiwDLiq",
"caption": "Rückblick zum Sportfest im Katzbachtal\n\nDrei Tage voller Sport, Spannung und Teamgeist – unser Sportfest mit Jugendturnieren, Jugendspielen sowie Herren- und Frauen-Punktspielen. ⚽️\n\nVielen Dank an alle Mannschaften, Trainer:innen, Helfer:innen und Fans, die dieses Wochenende zu etwas Besonderem gemacht haben! 🙌 \nOhne euch wäre das nicht möglich gewesen!\n\n🔴⚫️",
"alt": "Rückblick zum Sportfest im Katzbachtal",
"taken_at": 1788877457,
"is_video": false,
"image": "img/instagram/DdB5NiwDLiq.jpg",
"url": "https://www.instagram.com/p/DdB5NiwDLiq/"
},
{
"shortcode": "Dc-41FTDC7u",
"caption": "Heimsiege für unsere Erste und unsere Frauen! 🥳\nLeider keine Punkte für unsere Zweite!\n\n🔴⚫️",
"alt": "Heimsiege für unsere Erste und unsere Frauen! 🥳",
"taken_at": 1788776594,
"is_video": false,
"image": "img/instagram/Dc-41FTDC7u.jpg",
"url": "https://www.instagram.com/p/Dc-41FTDC7u/"
},
{
"shortcode": "Dc0lDcXDEG-",
"caption": "Vorschau aufs Sportfest-Wochenende 🔴⚫️\n\nWir freuen uns auf euer kommen und eure Unterstützung!",
"alt": "Vorschau aufs Sportfest-Wochenende 🔴⚫️",
"taken_at": 1788430681,
"is_video": false,
"image": "img/instagram/Dc0lDcXDEG-.jpg",
"url": "https://www.instagram.com/p/Dc0lDcXDEG-/"
},
{
"shortcode": "DcswzHHMHUs",
"caption": "Verdienter Heimdreier für unsere Erste am vergangenen Samstag 💪🏻\n\nÜberzeugende 1. Halbzeit und eine etwas wilde 2. Halbzeit 🤹🏻‍♂️",
"alt": "Verdienter Heimdreier für unsere Erste am vergangenen Samstag 💪🏻",
"taken_at": 1788168403,
"is_video": false,
"image": "img/instagram/DcswzHHMHUs.jpg",
"url": "https://www.instagram.com/p/DcswzHHMHUs/"
},
{
"shortcode": "DcrER7ODIlF",
"caption": "Sportfest im Katzbachtal!\n\nMittlerweile ist es ein echtes Highlight in unserem Vereinskalender: Das Sportfest im Katzbachtal!⚽🎉\n\n🗓️ 04.09. – 06.09.\n\nVon Freitag bis Sonntagabend erwartet euch ein abwechslungsreiches Programm für Groß und Klein – mit Fußball pur, Unterhaltung und geselligem Beisammensein.\nNatürlich ist auch für das leibliche Wohl bestens gesorgt 🌭🍕🍹🍺\n\nWir freuen uns auf euren Besuch! ❤️🖤",
"alt": "Sportfest im Katzbachtal!",
"taken_at": 1788111508,
"is_video": false,
"image": "img/instagram/DcrER7ODIlF.jpg",
"url": "https://www.instagram.com/p/DcrER7ODIlF/"
},
{
"shortcode": "DcjmUaMMJnD",
"caption": "🔴⚫️\n\nErste Herren\n6. Spieltag\n🗓️ Samstag, 29.8.\n🏟️ Heimspiel gegen Marktschorgast\n🕑 Anstoß: 14 Uhr\n\nZweite Herren \n🗓️Mittwoch, 2.9.\n🏟️ In Melkendorf gegen Thurnau 2\n🕑 Anstoß: 18 Uhr\n\nWir freuen uns auf eure Unterstützung!",
"alt": "🔴⚫️",
"taken_at": 1787860919,
"is_video": false,
"image": "img/instagram/DcjmUaMMJnD.jpg",
"url": "https://www.instagram.com/p/DcjmUaMMJnD/"
},
{
"shortcode": "DcavewWMsVH",
"caption": "Auswärtssieg für unsere Erste! 🙌",
"alt": "Auswärtssieg für unsere Erste! 🙌",
"taken_at": 1787563732,
"is_video": false,
"image": "img/instagram/DcavewWMsVH.jpg",
"url": "https://www.instagram.com/p/DcavewWMsVH/"
},
{
"shortcode": "DcQa-pwshfy",
"caption": "Für unsere Erste gehts auswärts weiter! 💪🏻\n\n🔴⚫️",
"alt": "Für unsere Erste gehts auswärts weiter! 💪🏻",
"taken_at": 1787217439,
"is_video": false,
"image": "img/instagram/DcQa-pwshfy.jpg",
"url": "https://www.instagram.com/p/DcQa-pwshfy/"
},
{
"shortcode": "DcPBlNMjKbP",
"caption": "🔴⚫️ Schnuppertraining im Katzbachtal! \n\n📅 29.08.\n⏰ 10:00–11:00 Uhr\n📍 Katzbachtal\n\nEine Stunde Fußball pur – für alle von der G- bis zur C-Jugend!",
"alt": "🔴⚫️ Schnuppertraining im Katzbachtal!",
"taken_at": 1787170569,
"is_video": false,
"image": "img/instagram/DcPBlNMjKbP.jpg",
"url": "https://www.instagram.com/p/DcPBlNMjKbP/"
},
{
"shortcode": "DcJDDkEMo0d",
"caption": "Leider keine Punkte am vergangenen Spieltag…😤\n\nAbhaken und voller Fokus auf das kommende Auswärtsspiel!",
"alt": "Leider keine Punkte am vergangenen Spieltag…😤",
"taken_at": 1786970016,
"is_video": false,
"image": "img/instagram/DcJDDkEMo0d.jpg",
"url": "https://www.instagram.com/p/DcJDDkEMo0d/"
},
{
"shortcode": "Db-XCrOsd4q",
"caption": "Heimspiel! - bei gewohnten Temperaturen 🔥",
"alt": "Heimspiel! - bei gewohnten Temperaturen 🔥",
"taken_at": 1786611395,
"is_video": false,
"image": "img/instagram/Db-XCrOsd4q.jpg",
"url": "https://www.instagram.com/p/Db-XCrOsd4q/"
},
{
"shortcode": "Db2ya5TDMLC",
"caption": "Unsere Ergebnisse vom Wochenende 🔴⚫️",
"alt": "Unsere Ergebnisse vom Wochenende 🔴⚫️",
"taken_at": 1786357314,
"is_video": false,
"image": "img/instagram/Db2ya5TDMLC.jpg",
"url": "https://www.instagram.com/p/Db2ya5TDMLC/"
},
{
"shortcode": "Dbs_SENMqBr",
"caption": "Weiter geht’s! 🔴⚫️",
"alt": "Weiter geht’s! 🔴⚫️",
"taken_at": 1786028513,
"is_video": false,
"image": "img/instagram/Dbs_SENMqBr.jpg",
"url": "https://www.instagram.com/p/Dbs_SENMqBr/"
},
{
"shortcode": "Dbk0vKCs-p2",
"caption": "Gebrauchter Samstagnachmittag…\nMund abputzen und weiter machen!\n\n🔴⚫️",
"alt": "Gebrauchter Samstagnachmittag…",
"taken_at": 1785754549,
"is_video": false,
"image": "img/instagram/Dbk0vKCs-p2.jpg",
"url": "https://www.instagram.com/p/Dbk0vKCs-p2/"
}
]
}