Search

Items tagged with: API








«Digitale Services nahtlos verbinden – API-Management ohne Vendor Lock-in: 100% Open Source in der Praxis»

🗓️ Zeit: Dienstag, 1.09.2026, 16:00 – 20:00
🏛️ Ort: Greenfield, Berner Fachhochschule (Brückenstrasse 69, 3005 Bern)

Open Source im Unternehmen ist längst Standard. Aber wie schafft man den Spagat zwischen maximaler Flexibilität, voller Datensouveränität und echtem Enterprise-Support beim API-Management? Genau darum geht es in unserem gemeinsamen Event mit INTEGON GmbH

🎟️ Anmeldung:
ch-open.ch/digitale-services-n…

#API #wso2 #Präsentation


The media in this post is not displayed to visitors. To view it, please go to the original post.

Mit den Labels für 2 und 3 habe ich mich am schwersten getan. Was denkt ihr? 2/3

#Haltungsform #Opensource #API


Mein Umzug von Pixelfed zu WordPress


The media in this post is not displayed to visitors. To view it, please go to the original post.

The media in this post is not displayed to visitors. To view it, please go to the original post.

Am letz­ten Wochen­en­de war plötz­lich mein Pixel­fed-Account voll. Ein Giga­byte mit Fotos und mir wur­de klar: Eine ande­re Lösung muss her! So bin ich jetzt von Pixel­fed zu Word­Press umge­zo­gen. Und das ging so.

Ich habe mir dar­über vor­her wenig Gedan­ken gemacht: Wenn ich Bil­der bei Pixel­fed hoch­la­de, müs­sen die dau­er­haft gespei­chert wer­den. Auf dem Ser­ver von jeman­dem, der den pri­vat und kos­ten­los betreibt. Bei Big-Tech weiß man, dass denen der Platz nie aus­geht. Wenn das jetzt aber bei mir 1 GB gewor­den ist, dann heißt das, dass auf dem Ser­ver vie­le Giga­byte Daten von den gan­zen Usern lie­gen. Wie lan­ge kann das gut gehen?

Ich habe mir des­we­gen über­legt: Auf mei­nem pri­va­ten Web­space ist ein Giga­byte rela­tiv wenig. Das mer­ke ich da nicht ein­mal, seit die Next­cloud da nicht mehr liegt. Mit Word­Press im Fedi­ver­se habe ich hier im Blog super Erfah­run­gen gemacht. Und ich hat­te mir auch schon ein­mal über­legt und aus­pro­biert, wie man Insta­gram nach­bau­en könn­te. Es gab also eine gro­be Skiz­ze in mei­nem Kopf und die Idee, dass es funk­tio­nie­ren könnte.

Inhalte umziehen


Nun woll­te ich nicht bei null anfan­gen. Aber wie bekom­me ich die Posts samt Medi­en aus Pixel­fed? Nach mei­ner Vibe-Coding-Erfah­rung neu­lich, habe ich gedacht, dass ich das ein­fach noch ein­mal neu ausprobiere.

Und tat­säch­lich hat mir Goog­le Gemi­ni nach einer Beschrei­bung mei­ner Anfor­de­run­gen eine Rei­he Datei­en und eine Datei­struk­tur aus­ge­wor­fen, die sich auf Anhieb instal­lie­ren ließ und funktionierte.

Ich habe das Plug­in dann noch ein paar Mal nach­bes­sern las­sen, um den Import der Hash­tags in Word­Press-Schlag­wör­ter zu prä­zi­sie­ren. Letzt­lich lief der Import dann ohne Pro­ble­me durch. Die meis­te Zeit habe ich mit einer Feh­ler­su­cher ver­schwen­det, bei der ich schlicht die fal­sche Pixel­fed-Domain im Backend ein­ge­tra­gen habe. Und es war auch ein wenig knif­fe­lig, her­aus­zu­fin­den, dass die Pixel­fed-API Coll­ec­tions noch nicht unterstützt.

Das Plug­in zieht also alle Posts und legt sie mit dem Ori­gi­nal­da­tum in Word­Press an. Alle Medi­en lan­den in einer Gale­rie am Ende des Tex­tes. Alle Hash­tags wer­den in Schlag­wör­ter über­tra­gen. Im Fließ­text wer­den die Hash­tag-Sym­bo­le und die Links ent­fernt. Wenn am Ende eine rei­ne Zei­le mit Hash­tags steht, wird die kom­plett entfernt.

Der Umzug der Follower


Nach­dem alle Inhal­te umge­zo­gen waren und ich sicher war, dass ich das so haben möch­te, konn­te der Umzug starten.

  1. Dazu habe ich als ers­ten in Word­Press, in mei­nem Benut­zer­pro­fil als Kon­to-Ali­as die URL mei­nes Pixel­fed-Accounts ein­ge­tra­gen. (pixelfed.de/users/USERNAME)
  2. Dann habe ich in Pixel­fed, in mei­nem Pro­fil, die Kon­to-Migra­ti­on ver­wen­det. Dort trägt man sein zukünf­ti­ges Pro­fil ein.

Und schon begin­nen die Fol­lower umzu­zie­hen. Nach und nach wuchs die Zahl der Fol­lower. Aller­dings sind von den gut 1400 nur ca. 660 übrig geblie­ben. Ich ver­mu­te, dass der Rest Kar­tei­lei­chen waren.

Umzug der Gefolgten


Lei­der zie­hen nicht auch die Accounts, denen ich fol­ge auto­ma­tisch mit um. In den Pixel­fed-Ein­stel­lun­gen gibt es aber einen Export für die­se Accounts. Der spuckt eine JSON-Lis­te aus.

Es gibt aber in Word­Press im Acti­vi­ty­Pub-Plug­in kei­nen Import dafür. Statt mir lan­ge eine cle­ve­re auto­ma­ti­sche Mög­lich­keit zu über­le­gen, habe ich die einen nach dem ande­ren manu­ell per Copy&Paste über­nom­men. Das hat aber für 350 Accounts auch nur 15 Minu­ten gedauert.

Auch beim Import sind ein paar Accounts raus­ge­flo­gen, weil es die ver­mut­lich nicht mehr gibt.

Den Import soll­te man lau­fen las­sen, wenn das Acti­vi­ty­Pub-Plug­in deak­ti­viert ist, damit nicht 1400 Mel­dun­gen ins Fedi­ver­se geschickt werden!

Ansons­ten habe ich erst ein­mal neben Mat­thi­as Pfef­fer­les Acti­vi­ty­Pub-Plug­in kei­ne wei­te­ren Plug­ins benö­tigt. Aber natür­lich habe ich ein paar Favo­ri­ten, die ich immer instal­lie­re – für die Bild­op­ti­mie­rung, das Caching oder SEO.

Im Acti­vi­ty­Pub-Plug­in habe ich gar nichts umge­stellt – nur dass ein Post die maxi­ma­le Anzahl von zehn Medi­en mit­schi­cken kann. Mast­o­don kann ja immer nur die ers­ten vier davon anzei­gen, aber Pixel­fed kann mit mehr Bil­dern umge­hen. Ich ver­mu­te auch Fri­en­di­ca kann das.

Wie es aussieht


Als The­me habe ich Twen­tyT­wen­ty­Fi­ve benutzt. Dank des Full­si­te-Editing ist es egal gewor­den, wel­che The­me man als Basis nimmt und das aktu­el­le, offi­zi­el­le The­me von Word­Press soll­te einen hin­rei­chend guten Sup­port haben.
Screen­shot der Startseite
Der Hea­der ist der Fedi­ve­re-Fol­low-Block, der mit dem Acti­vi­ty­Pub-Plug­in kommt. Das Hea­der-Bild stellt man sich im Benut­zer­pro­fil ein. Der Ava­tar kommt lei­der nur von Grava­tar. Das ver­ste­he ich nicht ganz, denn das Plug­in, mit dem ich mei­nen eigent­li­chen Ava­tar hoch­ge­la­den habe, ersetzt sonst über­all mein Profilbild.

Unter dem Hea­der habe ich die­se Lis­te der Kate­go­rien, die ich lei­der manu­ell pfle­gen muss.

Und dann kommt die Lis­te der Posts. Im Bei­trags-Tem­p­la­te-Block kann man ein­stel­len, wie vie­le Spal­ten mit Posts man haben möch­te. Ich fin­de, drei ist da eine gute Zahl. Da hat man ein paar Bil­der neben­ein­an­der aber nicht zu vie­le klei­ne Bil­der. In der Mobil­an­sicht sind die Posts dann ohne­hin wie­der untereinander.

Damit es mit den drei Spal­ten hin­kommt, habe ich in den Word­Press-Ein­stel­lun­gen die Anzahl von Posts auf der Start­sei­te auf 30 erhöht. Das ist durch drei teil­bar und die Lis­te ist lang genug, dass man nicht sofort wei­ter­blät­tern muss. Mal schau­en, ob ich noch ein­baue, dass wei­te­re Posts ein­fach nach­ge­la­den werden.

Was fehlt…


Ein Fea­ture, das bei Pixel­fed hat, das aber auch noch nicht so ganz imple­men­tiert ist, sind die Coll­ec­tions. Ich fin­de es aber ganz schön, meh­re­re Posts zu einer eige­nen Über­sicht zusammenzufassen.

Man kann in Pixel­fed in der WebUI Samm­lun­gen anle­gen – es gibt aber noch kei­ne API dafür. Kei­ne Ahnung, war­um. Ich dach­te immer, man schreibt erst die API und nutzt die dann bspw. für die WebUI.

Ich habe viel­leicht ein Dut­zend Samm­lun­gen in Pixel­fed. Die muss ich jetzt mal nach und nach manu­ell über­tra­gen. Ich habe mir dafür über­legt, dass ich die Kate­go­rien benut­ze. Weil ich ger­ne die Stan­dard­funk­tio­nen von Word­Press benut­ze. Aller­dings gibt es dort kein Kate­go­rie-Bild. So dass es kein schö­nes Vor­schau­bild für die Kate­go­rie gibt. Und es gibt in Word­Press kei­ne Sei­te, auf der auto­ma­tisch alle Kate­go­rien auf­ge­lis­tet wer­den. Es gibt auch kei­nen Guten­berg-Block, der das so dar­stel­len könn­te, wie ich das jetzt erst ein­mal manu­ell gemacht habe:

Das ist ein­fach eine Zei­le mit Bil­dern und Unter­ti­teln, die ich manu­ell auf die Kate­go­rie ver­linkt habe.

Dass ich die manu­ell pfle­gen muss, fin­de ich noch ganz ok. Aber ich muss auch die Sei­te mit der Über­sicht der Kate­go­rien kom­plett selbst pfle­gen – das fin­de ich noch nicht so schön. Da muss ich mir noch ein­mal etwas Bes­se­res überlegen.

Dann ist es so, dass in Kate­go­rien die Posts abstei­gend chro­no­lo­gisch sor­tiert sind. Das fin­de ich aber falsch, wenn bei mir so eine Kate­go­rie die Bil­der zu einer Rei­se ent­hal­ten. Des­we­gen habe ich eine klei­ne Funk­ti­on in der functions.php des The­mes ergänzt, das die Sor­tie­rung in Kate­go­rien umdreht.

Featured Galleries


Eine ande­re Sache, die mir fehlt sind Gale­rien als Bei­trags­bild. Es wäre cool, wenn man auch eine Gale­rie als Fea­tured Image ein­stel­len könn­te. Ob man dann schon in der Über­sicht durch alle Bil­der blät­tern kann oder da erst ein­mal nur ange­zeigt wird, dass es im Post mehr Fotos gibt, wäre mir egal. Insta­gram kann das.

Ich habe mir jetzt ein­fach damit behol­fen, dass es ein Bei­trags­bild gibt und eine Gale­rie mir den wei­te­ren Fotos. Im Fedi­ver­se wer­den die ohne­hin alle zusam­men ange­zeigt. Es geht also nur um die Anzei­ge auf mei­ner Website.

Mit einem klei­nen PHP-Schnip­sel in der functions.php sor­ge ich dafür, dass bei neu­en Bei­trä­gen das Bei­trags­for­mat auto­ma­tisch auf „Gal­lery“ ein­ge­stellt ist. Anhand die­ser Ein­stel­lung kön­nen ande­re Fedi­ver­se-Diens­te ent­schei­den, wie sie den Post dar­stel­len. Mast­o­don siehst also, dass bei die­sem Post die Medi­en-Anhän­ge im Fokus ste­hen und könn­te sich über­le­gen, den Post anders dar­zu­stel­len als einen nor­ma­len Text-Post.

Die App


Die Pixel­fed-App ist natür­lich genau für den Zweck gemacht, Fotos mit ein wenig Text zu pos­ten. Die Word­Press-App kann dafür eine gan­ze Men­ge von dem, was die­ses Redak­ti­ons­sys­tem nun ein­mal kann. Das ist ein ande­rer Work­flow. Aber die­se Mög­lich­kei­ten sind auch groß­ar­tig – ich kann aus mei­nem klei­nen Foto-Stream ein Unter­wegs-Blog machen. Mit Links und Zita­ten und Auf­zäh­lun­gen. Mit kom­ple­xen For­ma­tie­run­gen, wenn ich will. Oder ich schrei­be nur einen kur­zen Kom­men­tar zu den Bil­dern und haue die raus.

Was mir sehr gut dar­an gefällt: Ich kann Bil­der auch nach­träg­lich noch aus­tau­schen. Das ging bei Pixel­fed nicht. Da konn­te ich nur Bil­der löschen, aber kei­ne hin­zu­fü­gen. Bei Word­Press geht das.

Fediverse-Blöcke


Bei den Top 1000 größ­ten Mat­thi­as-Pfef­fer­le-Fans gehö­re ich bestimmt zu den obers­ten 10. Ich fin­de groß­ar­tig, was er mit sei­nem Acti­vi­ty­Pub-Plug­in leis­tet. Das funk­tio­niert schon so gut und es ist so eine gro­ße Berei­che­rung für das Social Web und für Word­Press. Aber ich ver­ste­he sei­ne Block-Phi­lo­so­phie noch nicht. Für mich kom­men die Fedi­ver­se-Blö­cke mit zu viel eige­nem Design, das man auch nicht anpas­sen kann:

  1. Der Block, der Likes und Share anzeigt, besteht aus zwei Tei­len: Dem eigent­li­chen Coun­ter und einer Über­schrift. Ich will aber kei­ne Über­schrift in mei­ner Über­sicht haben. Jedes Mal, wenn ich die Start­sei­te bear­bei­te, ist die Über­schrift wie­der da. Ich muss sie ent­sper­ren und ent­fer­nen. Und beim nächs­ten Mal ist sie wie­der da.
  2. Der Fol­ge-Block ist jetzt mein Hea­der. Weil er in vol­ler Pracht sehr so aus­sieht, wie ich mir einen Pro­fil­hea­der vor­stel­le: Titel­bild, Pro­fil­bild, Pro­fil­na­me, Beschrei­bung, Post- und Fol­lo­wer­zahl. Aber zum einen hat der Block immer run­de Kan­ten und einen Schat­ten. Das passt zufäl­lig zu mei­nem jet­zi­gen Lay­out. Passt aber nicht immer. Und dann ist der Schat­ten anders als der Schat­ten, den man bei ande­ren Blö­cken ein­stel­len kann. Zum ande­ren fehlt der Link zur Start­sei­te, wenn ich die­sen Block als Hea­der benut­ze. Ich habe mir das jetzt mit einem Ren­der-Fil­ter nach­ge­rüs­tet. Und das Hea­der-Bild ist viel fla­cher als es bei ande­ren Netz­wer­ken dar­ge­stellt wird.

Ich fänd es ein­fach bes­ser, wenn all die­se Ele­ment als ein­zel­ne, klei­ne Blö­cke zur Ver­fü­gung stün­den, die ich dann so zusam­men­bas­teln kann, wie ich das ger­ne hät­te – samt aller Ein­stel­lungs­mög­lich­kei­ten, die Guten­berg-Blö­cke haben.

„Social“


Nun habe ich ein Foto-Blog im Social Web. Alle kön­nen mei­ne Fotos sehen, liken, tei­len und kom­men­tie­ren. Ich kann das aber nicht. Ok, ich fol­ge mit mei­nem Blog auch gut 330 Accounts. Aber Acti­vi­ty­Pub ent­hält bis­her nur eine rudi­men­tä­re UI für den Feed und Inter­ak­tio­nen sind dort noch gar nicht möglich.

Mir fehlt durch­aus mein Foto-Feed. Die Mög­lich­keit Hash­tags zu fol­gen, zu liken, tei­len oder kom­men­tie­ren. Aber das ist schon grund­sätz­lich im Plug­in ange­legt, und so lan­ge muss ich eben ohne auskommen.

Mir feh­len auch Benach­rich­ti­gun­gen. Man kann sich von dem Acti­vi­ty­Pub-Plug­in per Mail benach­rich­ti­gen las­sen. Aber das müllt mir nur das Post­fach voll. Es fehlt eine Über­sicht der Benach­rich­ti­gun­gen wie bei Pixel­fed oder Mast­o­don: Likes, Shares, Kom­men­ta­re – irgend­wo als Glöck­chen-Icon mit Zahl im roten Kreis und dahin­ter eine Lis­te, wer, wann, was gemacht hat.

Das geht mit den Stan­dard­funk­tio­nen von Word­Press nur, wenn man alle Likes, Shares und Kom­men­ta­re manu­ell frei­schal­ten will. Das hal­te ich aber vor allem bei den Reak­tio­nen nicht für nötig.

Fazit


Ich bin ganz zufrie­den damit, wie der Umzug funk­tio­niert hat und dass ich jetzt kom­plett selbst in der Hand habe, wie ich mei­ne Fotos prä­sen­tie­re. Das woll­te ich eigent­lich immer schon machen. Es gab aber nie einen Anlass und dann habe ich jetzt auch gera­de noch eine Woche Urlaub bei mit­tel­mä­ßi­gem Wetter.

Ich fin­de so cool, dass das mit frei­er Soft­ware und offe­nen Stan­dards alles so geht. Ein­fach die Daten raus­zie­hen und etwas eige­nes damit machen. Big Tech redet allen ein, dass das nicht gin­ge. Dabei wol­len sie uns nur in ihren Silo hal­ten, um wei­ter unse­re Daten zu melken.

Es bleibt aber eine Bau­stel­le, weil Word­Press bis­her nur das hal­be Fedi­ver­se-Erleb­nis lie­fert. Cool wäre es, wenn Mat­thi­as irgend­wann Auto­mat­tic über­zeu­gen könn­te, die Fedi­ver­se-Funk­tio­nen auch in die App zu inte­grie­ren. Der Edi­tor dort ist natür­lich, wie er ist. Aber geni­al wäre es, dort einen Social-Feed zu haben, liken, tei­len und kom­men­tie­ren zu kön­nen und Benach­rich­ti­gun­gen zu bekom­men. Die­ses Poten­zi­al hat Auto­mat­tic bis­her offen­bar nur halb erkannt.

Links



Tracklisten per Subsonic importieren


Ich kann jetzt belie­bi­ge Play­lis­ten mit mei­ner Musik­samm­lung in der Next­cloud abglei­chen und dar­aus rich­ti­ge Play­lis­ten per Sub­so­nic erstel­len las­sen. Ganz neben­bei war das eine Zeit­rei­se in die Geschich­te der Kie­ler Club-Kul­tur – aber dazu spä­ter mehr. Con­tent War­ning: Vibe Coding

Die Vorgeschichte


Ich gehö­re zu den Leu­te, die noch eine ansehn­li­che CD-Samm­lung pfle­gen. Ich hat­te mal einen Spo­ti­fy-Account. Aber ich habe da so wahl­los Sachen gehört – nur weil es ging. Und Sachen nicht gehört, die hat­te und moch­te, die es aber bei Spo­ti­fy nicht gab.

Ich habe den Account wie­der gelöscht und bin bei mei­ner über Jahr­zehn­te kura­tier­ten Samm­lung geblie­ben. Natür­lich habe ich mir ein Back­up ange­legt, das mir jetzt als MP3-Samm­lung in der Next­cloud über­all zur Ver­fü­gung steht.

Die Musik-App der Next­cloud stellt die­se Samm­lung per Ampa­che- und Sub­so­nic-API bereit, so dass ich mit ent­spre­chen­den Play­ern von jedem Gerät aus Musik strea­men kann. Auf dem Han­dy ist das Power Ampa­che 2 – auf den Rech­ner ist das Super­so­nic.

Cool ist dann, dass auch die Play­lists in der Next­cloud ver­wal­tet wer­den und auf allen Gerä­ten zur Ver­fü­gung ste­hen – wie bei so einem kom­mer­zi­el­len Strea­ming-Ser­vice. Da macht es plötz­lich wie­der Spaß, Play­lis­ten zusam­men zu stellen.

Aber: Damit krat­ze ich immer nur an der Ober­flä­che mei­ner Samm­lung. Man stol­pert ja nicht über MP3s wie man über CDs oder Plat­ten in der Samm­lung stol­pert. Außer­dem gehö­ren 12 Jahr­gän­ge Rol­ling Stone Maga­zin Heft-CDs zu mei­ner Samm­lung. Irre vie­le Ein­zel­tracks, die ich gar nicht alle ken­ne. Ent­spre­chend wür­den die nie in Play­lis­ten von mir landen.

Kom­mer­zi­el­le Musik-Strea­mer haben ihre Vor­schlags-Funk­tio­nen. Lei­der haben mei­ne Play­er alle so etwas nicht. Der Linux-Musik­play­er Gua­ya­de­que hat­te das mal. Der hat die LastFM-API dafür ange­zapft. Aber der Play­er wird nicht mehr wei­ter­ent­wi­ckelt und ich weiß gar nicht, ob der Sub­so­nic oder Ampa­che konnte.

Also habe ich mir über­legt, dass es cool wäre, wenn ich belie­bi­ge Play­lis­ten mit mei­ner Samm­lung abglei­chen und dar­aus rich­ti­ge Play­lis­ten erstel­len könn­te. Ich bräuch­te ein Skript, dass eine Text-Datei mit den Tracks nimmt, über die Sub­so­nic-API abfragt, ob ein Song vor­han­den ist und wenn ja, zu einer Play­list hin­zu­fügt. Und wie macht man das heut­zu­ta­ge? Per Vibe-Coding!

Google Gemini FTW!


Ich kann ein wenig für den Haus­ge­brauch pro­gram­mie­ren aber für eine kom­plett manu­el­le Ent­wick­lung des Skripts hät­te ich ewig gebraucht. Ich kann aber über­bli­cken, ob das Skript, das mir Goog­le Gemi­ni aus­wirft ver­sucht mei­ne Fest­plat­te zu löschen oder ob es wirk­lich nur die Sub­so­nic-API bedient.

Mei­ne bis­he­ri­gen Erfah­run­gen mit die­sem Ansatz waren nicht von Erfolg gekrönt. Aber einen Ver­such war es wert. Und tat­säch­lich funk­tio­nier­te schon der ers­te Ansatz grund­sätz­lich. Ich weiß nicht mehr jeden wei­te­ren Schritt. Aber mir ist dann in der Aus­ga­be auf­ge­fal­len, dass Songs nicht gefun­den wur­den, die ich defi­ni­tiv in der Next­cloud habe. Das habe ich Gemi­ni „erklärt“ und dann hat mir das Sys­tem eine neue Ver­si­on aus­ge­spuckt. Manch­mal gab es Feh­ler. Dann habe ich die per copy&paste ein­ge­fügt und wie­der eine neue Ver­si­on bekommen.

Am Ende ist dabei jetzt ein Skript her­aus­ge­kom­men, das man auf­ru­fen kann:

./import.sh -pl NAMEDERPLAYLIST -txt songliste.txt

Was macht das Skript?


Die Song­lis­te muss streng im For­mat „Artist – Song­ti­tel“ sein – ein Ein­trag pro Zeile.

Das Skript nimmt dann einen Ein­trag nach dem ande­ren und

  1. sucht nach dem Songtitel
  2. sucht nach dem Song­ti­tel ohne Son­der­zei­chen wie Apostrophen
  3. Sucht nach dem Künst­ler mit dem ers­ten län­ge­ren Wort aus dem Song­ti­tel und schaut in der Track­lis­te, ob Tref­fer dabei sind

Dabei müs­sen die Tex­te nicht 100 % über­ein­stim­men. Das Skript sucht auch nach unge­fäh­ren Über­ein­stim­mun­gen bei Song­ti­tel und Band. Das war ein wenig Aus­pen­del-Arbeit, um mög­lichst vie­le Tracks zu fin­den und gleich­zei­tig kei­ne Fal­se-Posi­ti­ves in der Play­list zu haben.

Wer es selbst aus­pro­bie­ren möch­te, fin­det das Skript bei Code­berg.

Playlisten aufbereiten


Ich habe mir im Inter­net Play­lis­ten von DJs gesucht, die zu mei­nem Musik­ge­schmack pas­sen (dazu gleich mehr). Die habe ich kopiert und Gemi­ni „auf­ge­for­dert“ die Lis­ten auf­zu­räu­men, alle Künst­ler und Song­ti­tel zu berei­ni­gen und streng nach Artist – Song­ti­tel ohne Auf­zäh­lungs­zei­chen auszugeben.

Dabei sind dann Lis­ten her­aus­ge­kom­men, mit denen das Skript etwas anfan­gen kann.

Eine Kieler Zeitreise

King Kong Club Button
Als Quel­le für mei­ne Play­lis­ten habe ich mich bei DJs mei­nes Ver­trau­ens bedient. Ich habe mich mal ehren­amt­lich um die Tech­nik beim Kie­ler Online-Maga­zin kiel4kiel.de um die Tech­nik geküm­mert. Und ich habe mich erin­nert, dass dort die DJs von den King-King-Club- und Hör­sturz-Par­tys ihre Play­lists des Abends im Forum gepos­tet haben. Und die­ses Forum ist teil­wei­se von der Way­Back­Ma­chi­ne archi­viert worden:

  1. Hör­sturz @vinyl
  2. KING KONG CLUB – Kiels neue Indie-Party!

Dane­ben gab es noch das „Lis­tening In“ im Luna Club. Deren Web­site ist sogar noch online – samt aller Play­lis­ten von 2004 bis 2011!

Die­se Play­lis­ten habe ich mir her­aus­ko­piert, auf­räu­men las­sen und dann impor­tiert und ich hat­te erstaun­lich vie­le von den Sachen in der Next­cloud, so dass ich jetzt in musi­ka­li­schen Erin­ne­run­gen schwel­gen kann.

Apro­pos: Das Stö­bern in den alten kiel4kiel.de-Diskussionen war auch gran­di­os! Ich konn­te so rich­tig schön nach­ver­fol­gen, wie im Hör­sturz-Thread der ers­te King Kong Club ange­kün­digt wur­de. Wie dann er der eige­ne Thread gestar­tet wur­de. Wie nach und nach mehr Leu­te in die Dis­kus­si­on ein­ge­stie­gen sind.

Man konn­te sich 10 Titel wün­schen, von denen dann garan­tiert einer gespielt wur­de. Bis immer mehr Leu­te Wün­sche abge­ben haben und die DJs erst ein­schrän­ken muss­ten, dass nur ein­ge­logg­te User Lis­ten ein­rei­chen, dann soll­te es nur noch maxi­mal 30 Wün­sche geben – dann 25.

Und was haben die Leu­te in den Dis­kus­sio­nen abgen­er­det über Musik. Wann wo, wel­ches neue Album kommt. Wo wel­che Band spielt.

Und der King Kong Club war musi­ka­lisch ganz vor­ne dabei: In einer Zeit als man Musik nur auf CDs bekom­men hat und die aus den USA zum Teil arsch­teu­er waren, haben DJ Fran­ky und DJ Ben­net die schrägs­ten Sachen gehabt. Und wie sie es geschafft haben, das ers­te Arc­tic-Mon­keys-Album zu spie­len, Mona­te bevor über­haupt die ers­te offi­zi­el­le Sin­gle erschie­nen ist, bleibt mir ein Rätsel.

Im King Kong Club wur­de die neue Oasis-Sin­gle (Lay­la) schon als Pro­mo-Release gespielt. Das konn­te noch nie­mand ande­res über­haupt haben!

Die DJs hat­ten es echt drauf, einen klei­nen Hype um ihre Par­tys zu erzeu­gen – nicht nur mit den Forums-Dis­kus­sio­nen zwi­schen den Par­tys und den Wün­schen und dass man sich in der Play­list des Abend wie­der­fin­den konn­te. Es gab auch zu jeder Par­ty neue „But­tons“. Und tat­säch­lich habe ich noch eine King-Kong-Club- und einen Hör­sturz-But­ton in mei­nem But­ton-Glas gefunden!
Hör­sturz-But­ton
Bei den User­na­men ist mir das Herz auf­ge­gan­gen – mit ganz vie­len konn­te ich noch etwas anfan­gen und man­che tref­fe ich manch­mal noch irgend­wo in Kiel.

Spotify-Playlisten exportieren


Eine noch wei­te­re Zeit­rei­se hat­te ich davor schon gemacht: Mein 30-jäh­ri­ges Abi­tref­fen! Eine der Orga­ni­sa­to­rin­nen hat­te mich gefragt, ob ich nicht eine Play­list erstel­len könn­te – Sachen, die wir 1996 auf einer Par­ty gehört haben könnten.

Also muss­te ich mir doch mal wie­der eine Spo­ti­fy-Account anle­gen… Her­aus­ge­kom­men ist dabei die­se bun­te Lis­te mit ein biss­chen „vun all wat“ – nur kein Eurotrash.

Natür­lich gibt es im Inter­net einen Dienst, mit dem man eine Spo­ti­fy-Play­list in CSV expor­tie­ren kann. Die­se Play­list habe ich mir dann wie­der von Gemi­ni auf­räu­men las­sen und auch impor­tiert. Wenig über­ra­schend war das die ein­zi­ge Play­list, von der ich fast alles selbst hatte.

So. Ich habe jetzt Urlaub und höre Musik aus einer bes­se­ren Zeit.

Links






Tracklisten per Subsonic importieren


The media in this post is not displayed to visitors. To view it, please go to the original post.

Ich kann jetzt belie­bi­ge Play­lis­ten mit mei­ner Musik­samm­lung in der Next­cloud abglei­chen und dar­aus rich­ti­ge Play­lis­ten per Sub­so­nic erstel­len las­sen. Ganz neben­bei war das eine Zeit­rei­se in die Geschich­te der Kie­ler Club-Kul­tur – aber dazu spä­ter mehr. Con­tent War­ning: Vibe Coding

Die Vorgeschichte


Ich gehö­re zu den Leu­te, die noch eine ansehn­li­che CD-Samm­lung pfle­gen. Ich hat­te mal einen Spo­ti­fy-Account. Aber ich habe da so wahl­los Sachen gehört – nur weil es ging. Und Sachen nicht gehört, die hat­te und moch­te, die es aber bei Spo­ti­fy nicht gab.

Ich habe den Account wie­der gelöscht und bin bei mei­ner über Jahr­zehn­te kura­tier­ten Samm­lung geblie­ben. Natür­lich habe ich mir ein Back­up ange­legt, das mir jetzt als MP3-Samm­lung in der Next­cloud über­all zur Ver­fü­gung steht.

Die Musik-App der Next­cloud stellt die­se Samm­lung per Ampa­che- und Sub­so­nic-API bereit, so dass ich mit ent­spre­chen­den Play­ern von jedem Gerät aus Musik strea­men kann. Auf dem Han­dy ist das Power Ampa­che 2 – auf den Rech­ner ist das Super­so­nic.

Cool ist dann, dass auch die Play­lists in der Next­cloud ver­wal­tet wer­den und auf allen Gerä­ten zur Ver­fü­gung ste­hen – wie bei so einem kom­mer­zi­el­len Strea­ming-Ser­vice. Da macht es plötz­lich wie­der Spaß, Play­lis­ten zusam­men zu stellen.

Aber: Damit krat­ze ich immer nur an der Ober­flä­che mei­ner Samm­lung. Man stol­pert ja nicht über MP3s wie man über CDs oder Plat­ten in der Samm­lung stol­pert. Außer­dem gehö­ren 12 Jahr­gän­ge Rol­ling Stone Maga­zin Heft-CDs zu mei­ner Samm­lung. Irre vie­le Ein­zel­tracks, die ich gar nicht alle ken­ne. Ent­spre­chend wür­den die nie in Play­lis­ten von mir landen.

Kom­mer­zi­el­le Musik-Strea­mer haben ihre Vor­schlags-Funk­tio­nen. Lei­der haben mei­ne Play­er alle so etwas nicht. Der Linux-Musik­play­er Gua­ya­de­que hat­te das mal. Der hat die LastFM-API dafür ange­zapft. Aber der Play­er wird nicht mehr wei­ter­ent­wi­ckelt und ich weiß gar nicht, ob der Sub­so­nic oder Ampa­che konnte.

Also habe ich mir über­legt, dass es cool wäre, wenn ich belie­bi­ge Play­lis­ten mit mei­ner Samm­lung abglei­chen und dar­aus rich­ti­ge Play­lis­ten erstel­len könn­te. Ich bräuch­te ein Skript, dass eine Text-Datei mit den Tracks nimmt, über die Sub­so­nic-API abfragt, ob ein Song vor­han­den ist und wenn ja, zu einer Play­list hin­zu­fügt. Und wie macht man das heut­zu­ta­ge? Per Vibe-Coding!

Google Gemini FTW!


Ich kann ein wenig für den Haus­ge­brauch pro­gram­mie­ren aber für eine kom­plett manu­el­le Ent­wick­lung des Skripts hät­te ich ewig gebraucht. Ich kann aber über­bli­cken, ob das Skript, das mir Goog­le Gemi­ni aus­wirft ver­sucht mei­ne Fest­plat­te zu löschen oder ob es wirk­lich nur die Sub­so­nic-API bedient.

Mei­ne bis­he­ri­gen Erfah­run­gen mit die­sem Ansatz waren nicht von Erfolg gekrönt. Aber einen Ver­such war es wert. Und tat­säch­lich funk­tio­nier­te schon der ers­te Ansatz grund­sätz­lich. Ich weiß nicht mehr jeden wei­te­ren Schritt. Aber mir ist dann in der Aus­ga­be auf­ge­fal­len, dass Songs nicht gefun­den wur­den, die ich defi­ni­tiv in der Next­cloud habe. Das habe ich Gemi­ni „erklärt“ und dann hat mir das Sys­tem eine neue Ver­si­on aus­ge­spuckt. Manch­mal gab es Feh­ler. Dann habe ich die per copy&paste ein­ge­fügt und wie­der eine neue Ver­si­on bekommen.

Am Ende ist dabei jetzt ein Skript her­aus­ge­kom­men, das man auf­ru­fen kann:

./import.sh -pl NAMEDERPLAYLIST -txt songliste.txt

Was macht das Skript?


Die Song­lis­te muss streng im For­mat „Artist – Song­ti­tel“ sein – ein Ein­trag pro Zeile.

Das Skript nimmt dann einen Ein­trag nach dem ande­ren und

  1. sucht nach dem Songtitel
  2. sucht nach dem Song­ti­tel ohne Son­der­zei­chen wie Apostrophen
  3. Sucht nach dem Künst­ler mit dem ers­ten län­ge­ren Wort aus dem Song­ti­tel und schaut in der Track­lis­te, ob Tref­fer dabei sind

Dabei müs­sen die Tex­te nicht 100 % über­ein­stim­men. Das Skript sucht auch nach unge­fäh­ren Über­ein­stim­mun­gen bei Song­ti­tel und Band. Das war ein wenig Aus­pen­del-Arbeit, um mög­lichst vie­le Tracks zu fin­den und gleich­zei­tig kei­ne Fal­se-Posi­ti­ves in der Play­list zu haben.

Wer es selbst aus­pro­bie­ren möch­te, fin­det das Skript bei Code­berg.

Playlisten aufbereiten


Ich habe mir im Inter­net Play­lis­ten von DJs gesucht, die zu mei­nem Musik­ge­schmack pas­sen (dazu gleich mehr). Die habe ich kopiert und Gemi­ni „auf­ge­for­dert“ die Lis­ten auf­zu­räu­men, alle Künst­ler und Song­ti­tel zu berei­ni­gen und streng nach Artist – Song­ti­tel ohne Auf­zäh­lungs­zei­chen auszugeben.

Dabei sind dann Lis­ten her­aus­ge­kom­men, mit denen das Skript etwas anfan­gen kann.

Eine Kieler Zeitreise

King Kong Club Button
Als Quel­le für mei­ne Play­lis­ten habe ich mich bei DJs mei­nes Ver­trau­ens bedient. Ich habe mich mal ehren­amt­lich um die Tech­nik beim Kie­ler Online-Maga­zin kiel4kiel.de um die Tech­nik geküm­mert. Und ich habe mich erin­nert, dass dort die DJs von den King-King-Club- und Hör­sturz-Par­tys ihre Play­lists des Abends im Forum gepos­tet haben. Und die­ses Forum ist teil­wei­se von der Way­Back­Ma­chi­ne archi­viert worden:

  1. Hör­sturz @vinyl
  2. KING KONG CLUB – Kiels neue Indie-Party!

Dane­ben gab es noch das „Lis­tening In“ im Luna Club. Deren Web­site ist sogar noch online – samt aller Play­lis­ten von 2004 bis 2011!

Die­se Play­lis­ten habe ich mir her­aus­ko­piert, auf­räu­men las­sen und dann impor­tiert und ich hat­te erstaun­lich vie­le von den Sachen in der Next­cloud, so dass ich jetzt in musi­ka­li­schen Erin­ne­run­gen schwel­gen kann.

Apro­pos: Das Stö­bern in den alten kiel4kiel.de-Diskussionen war auch gran­di­os! Ich konn­te so rich­tig schön nach­ver­fol­gen, wie im Hör­sturz-Thread der ers­te King Kong Club ange­kün­digt wur­de. Wie dann er der eige­ne Thread gestar­tet wur­de. Wie nach und nach mehr Leu­te in die Dis­kus­si­on ein­ge­stie­gen sind.

Man konn­te sich 10 Titel wün­schen, von denen dann garan­tiert einer gespielt wur­de. Bis immer mehr Leu­te Wün­sche abge­ben haben und die DJs erst ein­schrän­ken muss­ten, dass nur ein­ge­logg­te User Lis­ten ein­rei­chen, dann soll­te es nur noch maxi­mal 30 Wün­sche geben – dann 25.

Und was haben die Leu­te in den Dis­kus­sio­nen abgen­er­det über Musik. Wann wo, wel­ches neue Album kommt. Wo wel­che Band spielt.

Und der King Kong Club war musi­ka­lisch ganz vor­ne dabei: In einer Zeit als man Musik nur auf CDs bekom­men hat und die aus den USA zum Teil arsch­teu­er waren, haben DJ Fran­ky und DJ Ben­net die schrägs­ten Sachen gehabt. Und wie sie es geschafft haben, das ers­te Arc­tic-Mon­keys-Album zu spie­len, Mona­te bevor über­haupt die ers­te offi­zi­el­le Sin­gle erschie­nen ist, bleibt mir ein Rätsel.

Im King Kong Club wur­de die neue Oasis-Sin­gle (Lay­la) schon als Pro­mo-Release gespielt. Das konn­te noch nie­mand ande­res über­haupt haben!

Die DJs hat­ten es echt drauf, einen klei­nen Hype um ihre Par­tys zu erzeu­gen – nicht nur mit den Forums-Dis­kus­sio­nen zwi­schen den Par­tys und den Wün­schen und dass man sich in der Play­list des Abend wie­der­fin­den konn­te. Es gab auch zu jeder Par­ty neue „But­tons“. Und tat­säch­lich habe ich noch eine King-Kong-Club- und einen Hör­sturz-But­ton in mei­nem But­ton-Glas gefunden!
Hör­sturz-But­ton
Bei den User­na­men ist mir das Herz auf­ge­gan­gen – mit ganz vie­len konn­te ich noch etwas anfan­gen und man­che tref­fe ich manch­mal noch irgend­wo in Kiel.

Spotify-Playlisten exportieren


Eine noch wei­te­re Zeit­rei­se hat­te ich davor schon gemacht: Mein 30-jäh­ri­ges Abi­tref­fen! Eine der Orga­ni­sa­to­rin­nen hat­te mich gefragt, ob ich nicht eine Play­list erstel­len könn­te – Sachen, die wir 1996 auf einer Par­ty gehört haben könnten.

Also muss­te ich mir doch mal wie­der eine Spo­ti­fy-Account anle­gen… Her­aus­ge­kom­men ist dabei die­se bun­te Lis­te mit ein biss­chen „vun all wat“ – nur kein Eurotrash.

Natür­lich gibt es im Inter­net einen Dienst, mit dem man eine Spo­ti­fy-Play­list in CSV expor­tie­ren kann. Die­se Play­list habe ich mir dann wie­der von Gemi­ni auf­räu­men las­sen und auch impor­tiert. Wenig über­ra­schend war das die ein­zi­ge Play­list, von der ich fast alles selbst hatte.

So. Ich habe jetzt Urlaub und höre Musik aus einer bes­se­ren Zeit.

Links




Aus aktuellem Anlass: Nachdem #VW seine #API mal kurz verbaut hat, sodass #EVCC , #HomeAssistant und weitere seit Tagen hitnerherentwickeln müssen, damit wir wieder Zugriff auf #unsereDaten haben, gibt es jetzt eine Petition (leider nicht ePetitionen), die von der Politik die Einhaltung des EU Data Act fordert.
c.org/ZLbycrPHFx
#DataAct #MeineDatenGehoerenMir


VW macht die API dicht, Smart-Home-Integrationen fallen um, PV-Überschussladen hängt in der Luft.

Und plötzlich merkt man wieder: Gekauft heißt bei vernetzten Geräten offenbar nur noch „du darfst es benutzen, solange der Hersteller gute Laune hat“.

Mein Auto. Meine Daten. Meine Schnittstellen.

Radikale Idee, ich weiß.

codeundkram.de/vw-macht-die-ap…

#VW #Audi #SmartHome #EVCC #HomeAssistant #API #Besitz #EAuto


8.1.0 — By the Numbers


The media in this post is not displayed to visitors. To view it, please go to the original post.

If 8.0.0 opened the Fediverse up as a two-way street, 8.1.0 helps you see and share what travels down it. A new Fediverse statistics feature leads the release, with a dashboard widget, email reports, and a shareable stats block. Alongside it: a new ActivityPub API that lets third-party Fediverse apps post to your blog, Starter Pack imports, and richer image metadata for photographers.
Wapuu in a space suit floats in front of an oversized, glowing yearly Fediverse stats card. The card shows a big follower number, a rising line chart, and a small "Top Post" highlight. Around Wapuu, little numbered badges drift like stars through space: posts, likes, boosts, replies. Wapuu holds one of the badges up proudly, as if admiring it.

Your Fediverse, By the Numbers


The headline work this release is a brand-new Fediverse statistics feature, three connected pieces that finally let you see (and share) how your site is doing on the open social web.

The Dashboard Widget


When you log into your WordPress admin, there’s now a Fediverse Stats widget on the dashboard.
A screenshot of the Fediverse Stats Dashboard Widget.
It’s built around three things:

  • Stat highlights: followers, posts, and engagement counts, with a comparison to the previous period so you can tell if the line is going up or down.
  • A monthly engagement chart: an interactive SVG line chart of engagement over time.
  • Top supporter and top posts: the people most engaged with your blog, and the posts that travelled furthest.

If you have both a user actor and a blog actor enabled, a selector lets you switch between them.

Monthly and Annual Email Reports


Not everyone logs into wp-admin every day, so the plugin can now also email you your stats.

There are two report types:

  • Annual reports, a wrap-up of your year on the Fediverse. On by default.
  • Monthly reports, a smaller recap for the previous month. Opt-in, for the folks who like a regular pulse check.

Both are delivered through the WordPress email system and available as notification preferences, so you can turn them on or off per actor.

The Stats Block, With a Sharepic


The same statistics also power a new Fediverse Stats block, a yearly snapshot you can drop into any post or page.

On the page, it renders as a clean card styled to match your theme, with colors and fonts picked up automatically from the active block theme, so it feels at home without fiddling.

Underneath, it also generates a shareable image version, a sharepic ready to post to the Fediverse itself. Think of it as your Fediverse year-in-review, without firing up a design tool.

And to make the timing easier, there’s a new seasonal starter pattern that suggests sharing your stats when you create a new post in December or January, the moment when everyone on the timeline is already in reflection mode.

Open for Apps: The ActivityPub API


For a long time, the plugin has spoken the server-to-server half of ActivityPub fluently, which is how your posts reach Mastodon, Pixelfed, and the rest. With 8.1.0, the plugin now also exposes an ActivityPub API, an implementation of the Client-to-Server (C2S) half of the protocol.

In plain language: third-party Fediverse apps can now create, edit, and delete posts on your blog directly, the same way they would on a Mastodon account. Alongside the basics, the ActivityPub API also supports Block, Add (pin a post), and Remove (unpin a post) activities. To make app discovery smoother, actor profiles now also expose OAuth server metadata and a registration endpoint, so clients can find their way in without manual setup.

The ActivityPub API is experimental and hidden behind a feature flag. To try it, open the ActivityPub settings page, click Screen Options in the top right, enable Advanced Settings, and save. Under the new Advanced tab, flip on ActivityPub API and you’re off. Once enabled, connected apps can be managed from your profile page.

This is foundational work. Most of what it enables will show up over time, as more apps start treating your WordPress site as something they can post from, not just to.

Bring Your Friends: Starter Pack Imports


Starter Packs are one of the easier ways to onboard onto a new Fediverse platform: follow a curated list of people and you land somewhere with a timeline already humming.

8.1.0 adds support for importing Starter Packs in both the Pixelfed and Mastodon formats. If you’re moving to WordPress from another Fediverse platform, or setting up a new blog and want to bootstrap your Following list, point the importer at a Starter Pack and the plugin will take care of the rest.

EXIF Metadata for Images


Photographers, this one’s for you. Image attachments now carry EXIF metadata (camera body, lens, focal length, aperture, shutter speed, ISO) using the Vernissage namespace.

The short version: the information that makes a photo worth reading about no longer gets stripped on the way out. Vernissage and other photo-focused Fediverse platforms can pick up the metadata and display it alongside the image, the way they would for a native post.

Changelog

Security


  • Add rate limiting to app registration to prevent abuse.
  • Fix blog actor outbox exposing private activities to unauthenticated visitors.
  • Restrict localhost URL allowance to local development environments only.
  • Verify that the signing key belongs to the same server as the activity actor.


Added


  • Add a “Posts and Replies” tab bar for author archives that filters between posts and replies, similar to Mastodon’s profile view.
  • Add a liked collection to actor profiles, showing all posts the actor has liked.
  • Add a seasonal starter pattern that suggests sharing Fediverse stats when creating a new post in December and January.
  • Add a stats block that displays annual Fediverse statistics as a card on the site and as a shareable image on the Fediverse, with automatic color and font adoption from the site’s theme.
  • Add Fediverse statistics dashboard widget with engagement metrics, charts, and monthly/annual email reports.
  • Added activitypub_pre_get_by_id filter to allow plugins to register custom virtual actors resolved by ID.
  • Add EXIF metadata support for image attachments using Vernissage namespace.
  • Add new Fediverse Following Page and Profile Page block patterns.
  • Add OAuth server metadata and registration endpoint discovery to actor profiles.
  • Add real-time streaming for inbox and outbox updates via Server-Sent Events (SSE).
  • Add support for Block, Add (pin post), and Remove (unpin post) activities via Client-to-Server API.
  • Add support for check-in activities posted via compatible apps.
  • Add support for importing Starter Packs in both the Pixelfed and Mastodon formats.
  • Add tags.pub integration to supplement tag timelines with posts from across the Fediverse.
  • Support for ActivityPub Client-to-Server (C2S) protocol, allowing apps like federated clients to create, edit, and delete posts on your behalf.


Changed


  • Block patterns for follow, following, and profile pages are now only suggested when editing pages.
  • Fix notification pagination when using Enable Mastodon Apps: use date-constrained queries instead of truncating the shared notification pool, and expose $limit, $before_date, and $after_date as additional filter arguments so third-party handlers can fetch the correct window.
  • Improve the pre-publish format suggestion panel with clearer messages and a confirmation after applying a format.
  • Podcast episodes now respect the configured object type setting instead of always being sent as “Note”.
  • Show reaction action buttons even when a post has no reactions yet.


Fixed


  • ActivityPub endpoints that surface comment, reply, like, share, and remote-reply metadata now honor the parent post’s visibility setting.
  • Added validation for SSE access tokens passed via query parameter.
  • Fix account migration (Move) not working when moving back to an external account.
  • Fix a fatal error during activity delivery when the outbox item has been deleted.
  • Fix a fatal error when receiving activities with a non-string language property.
  • Fix a fatal array_keys(null) in Comment::get_comment_type_slugs() that could take down any request where a third-party plugin transitioned a custom comment type before add_comment_type() had been called.
  • Fix a missing script dependency notice on the admin page in WordPress 6.9.1 and later.
  • Fix BuddyPress @mention filter corrupting Fediverse Followers and Following blocks.
  • Fix cleanup jobs silently doing nothing on sites where purge retention options were not set.
  • Fix comments on remote posts being incorrectly held in moderation.
  • Fix double-encoded HTML entities in post titles on the Fediverse Stats dashboard.
  • Fixed an issue where quote authorization stamps could reference unrelated posts.
  • Fixed double-encoding of special characters in comment author names on updates.
  • Fixed emoji shortcode replacement to handle special characters in emoji names correctly.
  • Fix fatal error when other plugins hook into the user agent filter expecting two arguments.
  • Fix Fediverse Preview showing the standard web view instead of the ActivityPub preview for draft posts.
  • Fix OAuth authentication failing for local development clients using localhost subdomains.
  • Fix performance regression from reply-exclusion filter by skipping it for queries targeting non-ActivityPub post types.
  • Fix Reader feed failing to load with newer WordPress versions.
  • Fix remote actor avatars getting stuck on broken URLs when the original image becomes unavailable.
  • Fix Site Health check showing an empty error message when the WebFinger endpoint is not reachable.
  • Fix the Fediverse profile “Joined” date showing the oldest post date instead of when the site started federating.
  • Fix the Fediverse profile showing an inflated post count by excluding incoming comments from the total.
  • Fix Update handler using stale local actor data instead of the activity payload.
  • Improved HTTP Signature validation for requests with a missing Date header.
  • Only allow S256 as PKCE code challenge method for OAuth authorization.
  • Prevent third-party plugin UI elements and scripts from appearing in federated content.
  • Require signed peer requests for the followers synchronization endpoint per FEP-8fcf.
  • Show a styled error page instead of raw technical output when an OAuth application cannot be reached during authorization.
  • Strip private recipient fields from all outgoing activities to prevent leaking private audiences.
  • Sync ActivityPub blog actor settings via Jetpack.
  • Use ap_actor post ID for remote account IDs instead of remapping URI strings.
  • Use safe HTTP request for signature retry to prevent requests to private IP ranges.
  • Validate emoji updated timestamps before storing them.


Get It


Download from WordPress.org or grab it on GitHub.

A huge thank you to everyone who contributed code, testing, bug reports, and ideas to this release.

Update, drop a stats block into your next recap post, and let us know what you think. Which number surprised you most? Which Fediverse app are you most excited to try with your blog?



The media in this post is not displayed to visitors. To view it, please go to the original post.

Big news for developers! Version 9.2 of #ONLYOFFICE Docs is here with exciting #API updates.

Here’s a quick look:

✅ JavaScript API upgrades: Enhanced form manipulation, paragraph methods for presentations/spreadsheets, and unit conversion helpers.

✅ Plugin improvements: Debugging tutorials, UI theming guides, and localization troubleshooting.

✅ DocSpace and Docs SDK updates: Auto-synced Docs SDK and a revamped API site with dark mode support.

Learn more: onlyoffice.com/blog/2025/12/ap…

#API



The media in this post is not displayed to visitors. To view it, please go to the original post.

A developer's guide to #ONLYOFFICE style and color APIs 🔥

If you're diving into plugin development for #ONLYOFFICE, you won't want to miss our comprehensive guide on using the style and color APIs.

Here’s a sneak peek of what you’ll learn:

✔️ Customizing text styles

✔️ Color management

✔️ Paragraph styling

✔️ Pro tips

Check out the full guide on our blog: onlyoffice.com/blog/2025/11/a-…

#Guide #API


The media in this post is not displayed to visitors. To view it, please go to the original post.

an meiner Tankstelle folgt der Preis immer (!) diesem Schema: geöffnet wird etwas teurer als am Vorabend. Dann schnellt der Preis extrem hoch und sinkt im Lauf des Tages. Abends ist die günstigste Gelegenheit zu tanken, kurz vor Schluss springt der Preis nochmal hoch. Wir lernen: zwischen 20:00 und 21:00 Uhr tanken fahren statt auf dem Weg zur bzw von der Arbeit.
#Tankerkönig #api


The media in this post is not displayed to visitors. To view it, please go to the original post.

Exciting update for #Pipedrive users: #ONLYOFFICE DocSpace app v1.1.0 released 🔥

Here's a quick rundown of what's new:

✅ Updated welcome guide

✅ Default public rooms

✅ Room type selection

✅ Automatic user addition

✅ #API key configuration

✅ Compatibility with #ONLYOFFICE DocSpace v3.0

Read our blog for more information about this release: onlyoffice.com/blog/2025/09/on…

#Update #Pipedrive


The media in this post is not displayed to visitors. To view it, please go to the original post.

#ONLYOFFICE at the API Conf Pune 2025 🔥

📆 September 21

📍 Pune, India

🌐 theapiconf.com

Our teammate Eeshaan took the stage to share insights and connect with the local tech community at the API Conf Pune 2025.

Learn more about other #ONLYOFFICE events on our website: onlyoffice.com/events.aspx?utm…

#Events #API #ONLYOFFICE


The media in this post is not displayed to visitors. To view it, please go to the original post.

#ONLYOFFICE #API: the latest updates for DocSpace and Docs🔥

In our comprehensive API roundup for August and September, you will find new features, integration examples and tools to supercharge your workflows.

Here’s a quick overview of what’s new:

✔️ Integration samples for the DocSpace Backend REST API;

✔️ Enhanced Plugins SDK for DocSpace;

✔️ New Office API examples;

✔️ Plugins and macros updates.

Check out the full blog post for all the details: onlyoffice.com/blog/2025/09/ap…


The media in this post is not displayed to visitors. To view it, please go to the original post.

The latest #API updates for #ONLYOFFICE DocSpace and ONLYOFFICE Docs are available🔥

Whether you're syncing platforms, building plugins or customizing workflows, there's something for everyone:

✔️ DocSpace API: integration samples

✔️ Enhanced plugins SDK for DocSpace

✔️ Docs API: new customization options

✔️ New Office API examples

Check out the full details and code samples in our blog: onlyoffice.com/blog/2025/08/ap…



The media in this post is not displayed to visitors. To view it, please go to the original post.

#API roundup: exciting updates for #ONLYOFFICE Docs 🔥

The latest #API updates for #ONLYOFFICE Docs are here, and they’re packed with features to supercharge your development and integration projects.

Here’s a quick rundown of what’s new:

✅ SDK updates;

✅ Customization FAQ;

✅ New Office API examples;

✅ AI-powered macros;

✅ New macro samples and much more.

Learn more in our blog: onlyoffice.com/blog/2025/07/ap…



Angriffe auf #OpenSource #Entwicklerumgebungen nehmen drastisch zu.

Im zweiten Quartal 2025 identifizierte #Sonatype über 16.000 schädliche #Pakete. Das entspricht einem Anstieg von 188 Prozent im Vergleich zum Vorjahr. Besonders betroffen ist der #OpenSource Bereich, wo gezielte Angriffe auf Entwicklerumgebungen zunehmend zur Regel werden.

Im Fokus der Angreifer stehen sensible Informationen wie #Zugangsschlüssel, #API Tokens und Konfigurationsdateien.

fosstopia.de/angriffe-oss-entw…


The media in this post is not displayed to visitors. To view it, please go to the original post.

#Linux #Bash #API
ICH HÖRE GERADE
Gerade abgespielte Musik auf #Mastodon Posten
Braucht man dazu ein Framework: NEIN
Muss ich das Programm kompilieren: NEIN
TOKEN: JA von Mastodoninstanz
Kann man das Skript kopieren :JA
github.com/dewomser/Toot_music…

Diese Player werden unterstützt :
VLC, Clementine (KDE), Strawberry (KDE), amarok 3 (KDE), Elisa (KDE), cmus (Konsole)
Alle Web-Browser mit Plasma-Integration
auf vielen Webseiten: Youtube, Bandcam, ,Nextcloud Music und viele mehr


Gibt es hier zufällig eine #Fediverse, besser gesagt einen Mastodon-#API-Expert*in, die Lust hat mit mir sich beim @PrototypeFund zu bewerben um an einer Anbindung und Interaktion zwischen @foss_events und #Mastodon zu arbeiten?

Wie der Name sagt erstmal ein Prototyp, Ergebnisse könnten auf andere Plattformen übertragen werden.



@traccer @heluecht

Die #Friendica-#API liefert gern 200.000 Zeichen als Maximallänge zurück... wenn das codeseitig geprüft wird, könnte die Begrenzung vor den rund 16 Megs zuschlagen...