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
151 lines
7.3 KiB
JSON
151 lines
7.3 KiB
JSON
{
|
||
"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/"
|
||
}
|
||
]
|
||
}
|