Files

250 lines
12 KiB
JSON
Raw Permalink Normal View History

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
{
"fetched_at": 1792834512,
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
"username": "tsv08kulmbach",
"posts": [
{
"shortcode": "De0vwrajLXG",
"caption": "🔴⚫️ Vorschau",
"alt": "🔴⚫️ Vorschau",
"taken_at": 1792731262,
"is_video": false,
"image": "img/instagram/De0vwrajLXG.jpg",
"url": "https://www.instagram.com/p/De0vwrajLXG/"
},
{
"shortcode": "Derh4uhDLDh",
"caption": "🔴⚫️ Ergebnisse \nKann sich sehen lassen 🙌",
"alt": "🔴⚫️ Ergebnisse",
"taken_at": 1792421998,
"is_video": false,
"image": "img/instagram/Derh4uhDLDh.jpg",
"url": "https://www.instagram.com/p/Derh4uhDLDh/"
},
{
"shortcode": "DehQgDrDB0Z",
"caption": "🔴⚫️ Vorschau",
"alt": "🔴⚫️ Vorschau",
"taken_at": 1792077339,
"is_video": false,
"image": "img/instagram/DehQgDrDB0Z.jpg",
"url": "https://www.instagram.com/p/DehQgDrDB0Z/"
},
{
"shortcode": "DeeldfjMZEm",
"caption": "Neue Trikots für unsere E-Jugend! ⚽️😍\n„Euer Ort, euer Verein, euer Trikot“ – unter diesem Motto sorgt die bundesweite TUI-Aktion auch beim TSV 08 Kulmbach für strahlende Gesichter! 👕😊\nDas ReiseCenter Schaffranek sicherte sich unter mehr als 500 Bewerbern einen von 200 Trikotsätzen. Wer sich darüber freuen durfte, entschieden anschließend die Verantwortlichen im ReiseCenter per Los: Sie befüllten die Lostrommel mit den Namen aller Vereine im Kulmbacher Stadtgebiet, die Jugendarbeit bis zur E-Jugend anbieten, und führten die Ziehung durch. Das gezogene Los: TSV 08 Kulmbach! 🍀🙌\nMelanie Schaffranek überreichte die neuen Trikots bei unserem E-Jugendfestival und konnte unsere Nachwuchskicker direkt darin in Aktion erleben. ⚽\nEin herzliches Dankeschön an TUI sowie an Melanie Schaffranek und das gesamte Team des ReiseCenter Schaffranek für diese tolle Unterstützung unserer Jugendarbeit! ❤️🖤\nUnsere E-Jugend trägt das TUI-Lächeln ab sofort auf dem Trikot – und die Freude darüber im Gesicht! 😃\n\n#tsv08kulmbach #jugendfussball #reisetui \nDanke @reisebuero_schaffranek",
"alt": "Neue Trikots für unsere E-Jugend! ⚽️😍",
"taken_at": 1791987664,
"is_video": false,
"image": "img/instagram/DeeldfjMZEm.jpg",
"url": "https://www.instagram.com/p/DeeldfjMZEm/"
},
{
"shortcode": "DePJUbkjKPc",
"caption": "🔴⚫️ Vorschau",
"alt": "🔴⚫️ Vorschau",
"taken_at": 1791469594,
"is_video": false,
"image": "img/instagram/DePJUbkjKPc.jpg",
"url": "https://www.instagram.com/p/DePJUbkjKPc/"
},
{
"shortcode": "DeG8wTzjAVR",
"caption": "Ergebnisse vom Wochenende 🔴⚫️\n\nDerbysieg für unsere Erste 🤹🏻‍♂️ und unsere Frauen bleiben weiterhin ungeschlagen! 💪🏻",
"alt": "Ergebnisse vom Wochenende 🔴⚫️",
"taken_at": 1791194571,
"is_video": false,
"image": "img/instagram/DeG8wTzjAVR.jpg",
"url": "https://www.instagram.com/p/DeG8wTzjAVR/"
},
{
"shortcode": "Dd9tmXplrZx",
"caption": "🔴⚫️ Vorschau inkl. Stadtderby 🔥",
"alt": "🔴⚫️ Vorschau inkl. Stadtderby 🔥",
"taken_at": 1790884635,
"is_video": false,
"image": "img/instagram/Dd9tmXplrZx.jpg",
"url": "https://www.instagram.com/p/Dd9tmXplrZx/"
},
{
"shortcode": "Dd1S1UkDOfO",
"caption": "🔴⚫️ Ergebnisse",
"alt": "🔴⚫️ Ergebnisse",
"taken_at": 1790602166,
"is_video": false,
"image": "img/instagram/Dd1S1UkDOfO.jpg",
"url": "https://www.instagram.com/p/Dd1S1UkDOfO/"
},
{
"shortcode": "DdtJFZajIds",
"caption": "🔴⚫️-Vorschau",
"alt": "🔴⚫️-Vorschau",
"taken_at": 1790328620,
"is_video": false,
"image": "img/instagram/DdtJFZajIds.jpg",
"url": "https://www.instagram.com/p/DdtJFZajIds/"
},
{
"shortcode": "Ddjq90MjLvH",
"caption": "Maximale Punkteausbeute für uns am Wochenende!\n❤️🖤",
"alt": "Maximale Punkteausbeute für uns am Wochenende!",
"taken_at": 1790010839,
"is_video": false,
"image": "img/instagram/Ddjq90MjLvH.jpg",
"url": "https://www.instagram.com/p/Ddjq90MjLvH/"
},
{
"shortcode": "DdZ3vzhDAZS",
"caption": "🔴⚫️ Vorschau",
"alt": "🔴⚫️ Vorschau",
"taken_at": 1789681996,
"is_video": false,
"image": "img/instagram/DdZ3vzhDAZS.jpg",
"url": "https://www.instagram.com/p/DdZ3vzhDAZS/"
},
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
{
"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/"
}
]
}