Informatie op maat met Yahoo! Pipes

De voordelen van rss-feeds mogen bekend zijn, toch zou het soms fijn zijn als u zelf wat meer invloed had op de informatie die via deze feeds verspreid wordt. En dit is precies waar Yahoo! Pipes voor ontwikkeld is. Met deze gratis online applicatie kunt u zelf webcontent samenvoegen, filteren en sorteren. Kortom: webcontent naar uw eigen smaak manipuleren.

Yahoo!-ID

Om aan de slag te kunnen met Yahoo! Pipes, hebt u een account bij Yahoo! nodig. Als u al een e-mailadres bij Yahoo! hebt, dan kunt u deze stap overslaan en doorgaan met stap 2. Mocht u nog geen Yahoo!-account hebben, ga dan naar yahoo. Klik aan de rechterkant (achter Gratis e-mail) op Meld je aan. Doorloop het registratieformulier, vul de gevraagde gegevens in en klik op Mijn Account maken. Als dit is gelukt, hebt u een e-mailadres bij Yahoo! Maar daar gaat het niet om, het belangrijkste is dat u nu een Yahoo!-ID hebt, zodat we verder kunnen.

Rondkijken op Yahoo! Pipes

Yahoo! Pipes is een webapplicatie waarmee u via een grafische interface mash-ups kunt maken met de inhoud van websites, rss-feeds en andere online diensten. U kunt de informatie die op een of meerdere websites te vinden is helemaal naar uw hand zetten. Voordat we zelf aan de slag gaan, is het leuk om eens rond te kijken bij wat anderen met Yahoo!-Pipes hebben gedaan. Als u naar pipes.yahoo gaat, krijgt u een overzicht van de populairste mash-ups die door gebruikers met internetgemeenschap gedeeld worden. Zoals u ziet, zijn er vele tienduizenden Pipes beschikbaar. Aan de linkerkant ziet u een zoekvenster en diverse categorieën, zoals csv, georss, media-appliaction enzovoort. Deze showcase is erg handig, want zo kunt u snel achterhalen of er niet al iemand heeft gemaakt wat u probeert te bereiken. En al is het niet helemaal precies hetzelfde als wat u wilt, dan nog kan het u in elk geval op weg helpen. Door te kijken wat anderen hebben gecreëerd, begrijpt u veel sneller hoe het allemaal werkt. Laten we eens een eenvoudige Pipe onder de loep nemen.

© PXimport

Door te kijken naar de Pipes die door de gemeenschap worden gedeeld, kunt u snel veel opsteken.

Een voorbeeld van een Pipe

Met Yahoo! Pipes kan veel, heel veel. Maar om u niet direct af te schrikken, nemen we als voorbeeld een eenvoudige Pipe. U vindt deze Pipe op het volgende adres. In principe doet deze niets anders dan de rss-feeds van acht binnenlandse nieuwsbronnen combineren in een enkele feed. U ziet een voorbeeld van het resultaat in de afbeelding hierboven. Deze gecombineerde rss-feed kunt u vervolgens laden in uw favoriete rss-reader, of in bijvoorbeeld iGoogle door op Get as RSS te klikken. Let wel: deze Pipe is zichtbaar voor de hele gemeenschap. Iedereen met een Yahoo!-ID kan inloggen en de bron bekijken, een kloon maken en er verder mee aan de slag gaan. Dat klonen is bijzonder handig. Stel dat u de Pipe heel bruikbaar vindt, dan kunt u zich natuurlijk abonneren op de rss-feed van die Pipe. Alleen, als de maker opeens besluit om de Pipe te verwijderen, aan te passen of niet meer te delen, dan is daarmee ook de rss-feed niet meer beschikbaar. Door een kloon te maken, verzekert u zich van de continuïteit. Maar hierover later meer.

© PXimport

Een voorbeeld van de output van een Pipe: een gecombineerde rss-feed van acht bronnen...

© PXimport

...en de rss-feed van de Pipe, waarop u zich kunt abonneren.

De bron van Pipes bekijken

In de vorige stap zag u het uiteindelijke resultaat van een eenvoudige Pipe. Wellicht niet zo spannend, maar als we naar de bron kijken, wordt het een stuk interessanter. U kunt de bron bekijken door op View Source te klikken. Om de bron te bekijken, dient u wel in te loggen met uw Yahoo!-ID. Als u ingelogd bent, komt u in de editor-modus van Yahoo! Pipes. Hoewel het niet uw eigen Pipe is, kunt u wel alles doen wat u maar wilt, omdat de Pipe gedeeld is. U kunt echter niets aan het origineel wijzigen, alleen een kopie opslaan voor eigen gebruik (Save a copy). Zoals u ziet, is het editor-scherm in drieën verdeeld. Aan de linkerkant ziet u alle mogelijke opties waaruit u kunt kiezen, aan de rechterkant het scherm waarin u uw mash-up kunt samenstellen. Dit gaat allemaal modulair, in blokjes ('modules' geheten) die u met elkaar kunt verbinden. In dit voorbeeld combineren we zoals gezegd de rss-feeds van acht nieuwsbronnen via de optie Fetch Feed. Deze is gekoppeld aan Pipe Output, hier wordt bepaald wat de uiteindelijke data is. Aan de onderkant, tot slot, ziet u de debugger, waar u het (tussen)resultaat kunt zien. Wanneer u op een blokje klikt, ziet u in de debugger het resultaat van dat specifieke blokje. Dit voorbeeld heeft slechts een enkel blokje, maar bij meer ingewikkelde Pipes, is de debugger onmisbaar, zoals u later zult zien.

© PXimport

De bron van de eenvoudige Pipe, waarin acht rss-feeds worden samengevoegd.

Ingewikkelder Pipes

Nu u een eerste indruk hebt gekregen, is het tijd voor een ingewikkelder Pipe. Als voorbeeld blijven we bij het binnenlands nieuws. Stel we willen de rss-feeds van de grote online nieuwsbronnen combineren in een enkele rss-feed. Omdat kranten en nieuwssites als nu.nl gebruik maken van persdiensten als het ANP, zullen dezelfde nieuwsberichten op meerdere sites terechtkomen. Hoewel het niet helemaal uit te sluiten is, kunnen we wel proberen om doublures zoveel mogelijk te voorkomen. Tot slot willen we natuurlijk het laatste nieuws bovenaan. Kortom: we gaan de rss-feeds samenvoegen, ontdubbelen en op datum en tijd sorteren. Het eindresultaat ziet u in de afbeelding op pagina 121. Dat ziet er een stuk ingewikkelder uit, nietwaar? We lopen er stap voor stap doorheen.

© PXimport

Een iets ingewikkelder Pipe, in elk geval op het eerste oog.

Beginnen bij het begin

Met Yahoo! Pipes kan zoals gezegd heel veel, de mogelijkheden zijn praktisch onbeperkt. Het heeft geen zin om alle mogelijkheden hier uit te leggen, we gaan gewoon beginnen. Aan de linkerkant ziet u de verschillende modules (bouwstenen), ingedeeld op categorie. We willen een aantal rss-feeds samenvoegen, hiervoor gebruiken we de module Fetch Feed. Als u met uw muisknop een module aanklikt, ziet u dat de muiscursor verandert en kunt u het blokje vervolgens eenvoudig verslepen naar de rechterkant, ons werkblad met de ruitjesachtergrond. Laat het blokje los en er worden twee modules op uw werkblad zichtbaar: Fetch Feed en Pipe Output. In het invoerveld van Fetch Feed hoeft u nu alleen de url in te voeren, die u uiteraard kopieert uit de adresbalk van een rss-feed.

© PXimport

We beginnen eenvoudig, met de module Fetch Feed.

Tussendoor testen

Als u op de bovenkant van de module klikt, ziet u het resultaat onderaan in de debugger. Ziet u niets? Klik dan op refresh. Klik op +URL om een extra invoerveld te maken, voer weer de url van een rss-feed in en bekijk weer het resultaat in de debugger. Dit herhaalt u steeds, tot u al de gewenste rss-feeds hebt ingevoerd. Het enige dat u nu nog hoeft te doen, is de module Fetch Feed te koppelen aan Pipe Output, want anders 'gebeurt er niets'. Dit doet u door op het bolletje dat aan de module vastzit te klikken met uw linkermuisknop en uw muiscursor te verplaatsen naar het bolletje van Pipe Output. Zoals u ziet, wordt er een blauwe lijn getrokken tussen de twee modules. Nu is in principe de Pipe 'af' en kan hij gepubliceerd worden. Maar zoals u vaak zult zien, zijn de feeds niet allemaal hetzelfde opgebouwd. Zo begint de feed van de Volkskrant met de datum en de tijd, gooit de Telegraaf alles op een grote hoop (en worden roddels tussen binnenlandse nieuwsitems gepresenteerd). Dus wordt het tijd om de boel wat uit elkaar te trekken.

© PXimport

Door een verbinding te maken tussen Fetch Feed en Pipe Output is de Pipe in principe 'af'.

Vergeet niet tussendoor op te slaan!

Yahoo! Pipes is een mooie online applicatie. Helaas is het niet altijd even stabiel en alleen daarom is het aan te raden om tussendoor uw Pipe op te slaan. Klik bovenin op Save en geef de pipe een naam. Mocht u een foutmelding krijgen - bijvoorbeeld "Oops. System error: badly formed response" of "Server hangup", schrik niet maar blijf het gewoon proberen, net zolang tot het lukt. Heel irritant, maar het is niet anders.

De eigenschappen van de feed bekijken

Het aanpassen (manipuleren) van de feed van de Volkskrant is vrij ingewikkeld, daar moeten we reguliere expressies voor gebruiken (zie kader 'Reguliere expressies'). Een stuk eenvoudiger is het om de resultaten van een feed te filteren. We moeten hiervoor de feed wel eerst in delen splitsen. En dat is heel eenvoudig, u maakt gewoon een nieuwe Fetch Feed-module. Het maakt niet uit waar u deze plaatst, maar voor het overzicht kunt u dit het beste naast de andere Fetch Feed-module doen. Vul hier de url in van de feed (in de geval die van de Telegraaf) en klik op de titelbalk van deze module. Zoals u ziet in de debugger, wordt alle nieuws door elkaar geplaatst. Wij zijn alleen geïnteresseerd in binnenlands nieuws, maar hoe filter je hierop? Daarvoor moeten we wat dieper in de feed-eigenschappen duiken. Klik een item in de debugger open door op het pijltje ervoor te klikken. Zoals u ziet, heeft een rss-feed allerlei extra informatie die nu getoond wordt. Waar we in geïnteresseerd zijn, is een gemeenschappelijke noemer. Klik een aantal feed-items open, net zolang tot u de gemeenschappelijke noemer hebt gevonden.

© PXimport

Duik iets dieper in de eigenschappen van de feed voor de gemeenschappelijke noemer.

Filteren van de resultaten

In dit geval is de gemeenschappelijke noemer category en het is niet heel verrassend dat deze 'binnenland' heet. Dus gaan we filteren op binnenland. Dit doen we door een Filter module toe te voegen. Deze vinden we aan de linkerkant onder Operators. Sleep de module naar rechts, onder de zojuist aangemaakte Fetch module. Verbind de twee modules door een lijn te trekken tussen de bolletjes. Als u klikt op het bolletje van Fetch Feed, ziet u trouwens de mogelijke verbindingspunten van de andere module(s) oplichten. Doordat u nu de modules hebt verbonden met elkaar, onttrekt de Filter-module de aanwezige onderdelen uit de feed en kunnen we die selecteren. Heel logisch allemaal. We willen alleen de berichten doorlaten met de category 'binnenland'. Dus kiest u in de Filter module voor Permit (items that match) all (of the following). Daaronder geeft u een of meerdere rules in. We kunnen hier volstaan met een regel: Item.category Contains binnenland. Als we nu op de titelbalk van de Filter module klikken en in de debugger op refresh, dan ziet u direct het resultaat.

© PXimport

Als we filteren op 'binnenland', wordt het kaf van het koren gescheiden.

Bekijk tussendoor hoe uw pipe eruit gaat zien

Hoewel u onderaan in de debugger natuurlijk al een eerste indruk kunt zien van de koppen van de uiteindelijke feed, zegt dit lang niet alles. Klik bovenin eerst op Save om de Pipe op te slaan. Als dit gelukt is, dan verschijnt bovenaan in het midden de melding Pipe Saved Run Pipe. Klik op de link Run Pipe om het resultaat te bekijken in een nieuw venster of tabblad!

Combineren

Als u tevreden bent, kunnen we de verschillende Feed Fetch modules combineren. Uiteindelijk moet alles namelijk uitkomen op de Pipe Output. Voor het combineren is een mooie andere module beschikbaar, die Union heet en die net als de Filter module onder Operators te vinden is. Sleep de Union module naar rechts, verbind de eerste Fetch Feed module ermee en doe hetzelfde met de gefilterde feed, dus met de Filter module. Union kunt u vervolgens weer koppelen aan de Pipe Output. U kunt tot vijf modules samenvoegen via een enkele Union module, maar u kunt meerdere Union modules maken en deze onderling koppelen. De mogelijkheden zijn dus praktisch onbeperkt!

© PXimport

Met Union kunt u verschillende modules combineren.

Ontdubbelen

Zoals gezegd, wordt er door kranten veel gebruikgemaakt van de nieuwsberichten van het ANP. Veel nieuwssites plaatsen deze berichten direct door, sommige sites veranderen wat kleine dingen, zoals de kop. Helaas maakt dat laatste het vrijwel ondoenlijk om de dubbele berichten eruit te filteren, aangezien de inhoud van de feed 'uniek' wordt. In het geval van de sites die berichten klakkeloos doorplaatsen kunnen we echter de dubbele berichten er wel tussenuitvissen. Dit doen we met de module Unique, die u wederom aan de linkerkant vindt onder Operators. Sleep deze onder de module Union en leg weer een verbinding tussen de twee modules. In de Unique module kiest u vervolgens voor Filter non-unique items based on item.title. Klik beurtelings op de titel van de Union module en Unique module om in de debugger het verschil te zien (klik wel steeds op refresh). Zoals u ziet, worden er nogal wat dubbele artikelen uitgehaald.

© PXimport

Met Unique kunt u de resultaten eenvoudig ontdubbelen.

Sorteren

De laatste stap is om de resultaten nog even te sorteren op datum en tijd. Dat is wel zo handig om een mooi overzicht te krijgen van de nieuwsberichten op volgorde van publicatie. Onder Operators kiest u voor de module Sort. Sleep deze onder Unique en verbind ze met elkaar. Kies in de Sort module voor Sort by item.pubDate in descending order. Zo zal het nieuwste bericht steeds bovenaan in de feed verschijnen, onafhankelijk van de bron. Verbind tot slot de Sort module ook nog met Pipe Output en uw eigen, gepersonaliseerde feed is klaar. Klik op Save en geef (als u dit tussendoor nog niet gedaan hebt) een naam aan uw Pipe. Om alle modules mooi uit te lijnen, kunt u linksboven op Layout klikken. Zie hier het uiteindelijke resultaat.

© PXimport

Sorteer tot slot de resultaten nog met de module Sort en uw Pipe is klaar!

Reguliere expressies

De meeste rss-feeds zien er grofweg hetzelfde uit. Er is een kop, met een kort intro en eventueel een afbeelding. Bij de Volkskrant hebben ze echter een eigen manier bedacht en begint elke kop van de feed met de tijd van publicatie. Bovendien voegt de redactie aan het einde van de korte introtekst ook nog de datum en tijd van publicatie toe. Dit is voor het ontdubbelen van feed-items niet handig, want elk bericht van Volkskrant.nl is op deze manier namelijk uniek. In Yahoo! Pipes zitten gelukkig opties om dit te manipuleren. In dit specifieke geval zouden we hier zogeheten 'reguliere expressies' voor gebruiken, waarmee een soort 'zoek en vervang' kan worden toegepast. Zo kunnen we in item.description zoeken naar \(+(\d{2})\:+(\d{2}).+ en dit vervangen door 'niets'. Het gaat te ver om dit hier uit te leggen, maar als u geïnteresseerd bent in reguliere expressies, klik dan aan de linkerkant onder Operators op regex. Linksonderaan ziet u vervolgens een korte uitleg en wordt u voor meer informatie doorverwezen naar pipes.yahoo. Maar dit is wel bijna hogere wiskunde! Zie hier voor een voorbeeld!

© PXimport

Met reguliere expressies kunt u de inhoud van feeds manipuleren.

© PXimport

Zoals hier bij de feed van de Volkskrant.nl, die gestript wordt van de datum en tijd.

Het eindresultaat publiceren

Nu uw Pipe klaar is, kunt u hem bekijken en oproepen in uw favoriete rss-reader. Klik bovenin op Back to My Pipes om terug te gaan naar uw overzicht met Pipes. Klik een Pipe aan om het resultaat te zien. Fraai, nietwaar? Eventueel kunt u de naam en omschrijving aanpassen: door deze te selecteren wordt hij geel gemarkeerd en kunt u de inhoud wijzigen. Klik daarna op Save om op te slaan. Het mooie is dat u deze Yahoo! Pipe ook als rss-feed kunt bekijken, klik hiervoor op Get as RSS en abonneer u op de rss-feed met uw favoriete rss-reader. Ook kunt u uw Pipe desgewenst publiceren - en dus delen met de gemeenschap. Wilt u dit, dan klikt u op Publish en daarna op OK. Een laatste opmerking: de rss-feeds die u met Yahoo! Pipes maakt, worden slechts eenmaal per halfuur ververst.

© PXimport

Het eindresultaat met de gecombineerde feeds, keurig ontdubbeld en gesorteerd.

Bekijk de voorbeelden

De voorbeelden die in dit artikel zijn gebruikt, kunt u hier bekijken en desgewenst kopiëren en bewerken:

Simpel

binnenlandsnieuws

incl_regexp

Deel dit artikel
Voeg toe aan favorieten