RSSHub

Ayant testé un moment la plateforme Instagram et souhaitant être en mesure de suivre les publications d’une sélection de comptes publiques directement dans mes flux RSS, je me suis tourné, après quelques recherches, vers une solution open source plus que prometteuse, à savoir RSSHub.

On peut constater rapidement en parcourant le github du projet que les principaux contributeurs sont d’origines asiatiques, comme l’attestent les caractères. Cela ne nuit en rien au projet, puisque la documentation en langue de Shakespeare est plutôt complète, si ce n’est pour la lecture des commentaires présents dans le code, ou des issues sur Github.

J’ai donc fait le choix de tester cette solution, et pour une fois, plutôt que de l’héberger sur l’une de mes machines, j’ai choisi de suivre la solution GCP décrite dans la documentation du projet. Le but étant de savoir si mon utilisation reste dans le palier gratuit fournit par Google pour l’utilisation d’un App Engine, et surtout, de pouvoir tester facilement l’intégration avec FreshRSS. Enfin dernier point, cela me permet de ne pas me poser la question de l’hébergement d’une solution NodeJS, qui nécessiterait un peu de travail de configuration pour arriver à une situation satisfaisante dans mon infrastructure auto-hébergée.

Commençons par quelques notes concernant la gestion de profils au niveau de l’utilitaire gcloud. En premier lieu, création d’un profil rsshub.

gcloud config configurations create rsshub

Voir le détail de la configuration active.

gcloud config list

Lister toutes les configurations de comptes disponibles.

gcloud config configurations list

Et enfin, activer la configuration rsshub.

gcloud config configurations activate rsshub

Passons ensuite à la préparation du déploiement de l’application. Pour cela, je créé un fichier app.yaml à la racine du projet afin de décrire la façon de déployer le programme sur la GCP et le configurer.

# [START app_yaml]
runtime: nodejs10
basic_scaling:
   max_instances: 1
network:
   forwarded_ports:
       - 80:1200
       - 443:1200
# environment variables section, refer to Settings
env_variables:
   CACHE_EXPIRE: '300'
   HTTP_BASIC_AUTH_NAME: '<username>'
   HTTP_BASIC_AUTH_PASS: '<password>'
#[END app_yaml]

Pour terminer, déploiement de l’application dans App Engine.

gcloud app deploy

À ce stade, je dispose donc d’un RSSHub agissant comme proxy entre mon lecteur de flux RSS et Instagram. Celui-ci est hébergé sur le cloud Google et la faible utilisation ne semble pas dépasser les paliers gratuits, ce qui n’est pas plus mal. RSSHub permet également de générer des RSS pour des comptes Twitter ou encore, pour des résultats de recherche leboncoin; la liste est plutôt bien fournie et semble aller en augmentant.

RSSHub est donc un programme que je trouve particulièrement intéressant pour ne plus dépendre d’un compte ou d’une application téléphone pour consommer du contenu. C’est un véritable gain sur bien des aspects, pour Instagram en tout cas, je note: pas de publicité dans le flux (sauf contenu sponsorisé d’un compte), possibilité de supprimer l’application, donc pas de tentation de l’utiliser pour passer le temps ou en cas d’ennui, pas de pistage (ou en tout cas, moins aisé). Au final, retour à un système qui me convient et que je maîtrise, où l’information arrive quand je l’ai décidé et sans essayer de me rendre accro.

Temps, réseaux sociaux et RSS

J’avais commencé à écrire ces quelques réflexions peu après la lecture d’un article de Cyrille Borne (Restructuration ou on va tous mourir ?), qui évoquait réseaux sociaux, blogs et RSS entre autres considérations.

On peut lire régulièrement des invitations à s’inscrire sur Mastodonte, Diaspora*, <ajouter ici le nom de votre réseau social préféré>. Si du point de vue du libre et de la décentralisation, ces différents outils m’interpellent, le principal obstacle à leur utilisation n’est pourtant pas technique, mais, pour ma part, temporel, pour ne pas dire philosophique.

L’écueil réside dans la conception même et dans l’usage. De mon expérience sur Twitter, principalement en observateur, je garde le souvenir d’une forme d’obligation à revenir régulièrement au risque de rater une information, un lien vers un article éclairant, une astuce de programmation, … On y trouve également des comptes qui une fois suivis, deviennent omniprésent dans le fil d’actualités, car leur propriétaire publie plusieurs messages par heure. Pour ne pas passer à côté d’un éventuel contenu intéressant, il devient alors nécessaire de consulter fréquemment les nouveautés.

A cela s’ajoute le cœur du problème, le temps passé à fréquenter ces sites, dans l’espoir d’un like, dans l’attente d’un nouveau message à lire. Ce temps, c’est autant de minutes qu’on ne passera pas à mettre en place la sauvegarde de son serveur, rédiger un article, réfléchir, ou plus simplement, dormir. Au final, nous reproduisons des outils créés par des entreprises pour capter l’attention  des utilisateurs et s’assurer que ces derniers reviennent le plus souvent possible, afin de les profiler et de les abreuver de publicités, ou d’un contenu choisit pour eux par des algorithmes.

Est-ce que tout ne réside pas en fin de compte dans ces deux mots « fil d’actualités ». Qu’est-ce qui constitue une actualité, une information qui me sera pertinente, m’apprendra quelque chose, fera progresser mes réflexions ? Quel besoin ai-je d’apprendre en 140 caractères que un-tel à changer d’ordinateur. Aucun ! Information, qu’il sera moins probable de voir apparaître comme article de blog, ou alors délayée, étayée dans un texte plus construit peut-être, et expliquant les critères de choix de l’auteur au regard de ses besoins personnels.

C’est un choix individuel, qui doit être prix en connaissance de cause. J’ai de mon côté opté pour les flux RSS, qui m’apporte l’intégralité des contenus publiés sans délégation de choix à un algorithme, la possibilité de grouper les flux au sein d’une catégorie, et la récupération périodique et asynchrone des flux. Bien sûr, le choix des flux est un point critique, mais avec un peu d’organisation et de méthode, on finit par y arriver.

En somme, je crois davantage aux blogs et autres sites statiques, évoluant au gré des envies de leur propriétaire, qu’au rythme effréné des messages courts, des autoportraits quotidiennes et autres. Les découvertes s’effectuent alors majoritairement par un effet de bouche-à-oreille, par un lien, une référence vers un autre site, un autre blog. Le bout d’internet découvert ne fait pas forcément l’objet d’un suivi par RSS… mais son exploration est rarement source de déception.

Flux RSS des vidéos d’une chaîne Youtube

Le premier article de 2015 concernera Youtube et les flux RSS avec l’astuce toute simple que voici. Si vous souhaitez suivre les vidéos d’une chaîne en particulier dans votre lecteur de flux RSS préféré, il suffit d’utiliser l’url suivante pour récupérer le flux RSS des vidéos d’un utilisateur. On remplacera bien sûr <USERNAME> par l’identifiant de la chaîne.

https://gdata.youtube.com/feeds/base/users/<USERNAME>/uploads

 

Illustration avec la chaîne Data Geule. Voici l’url que l’on obtient si on se rend sur la page Youtube:

https://www.youtube.com/user/datagueule/featured

On voit clairement le nom d’utilisateur, ici datageule. On constate parfois que le nom de la chaîne est complètement différent du nom d’utilisateur présent dans l’url; ce n’est pas le cas ici. On obtient donc l’url suivante pour les flux RSS de Data Geule sur Youtube:

https://gdata.youtube.com/feeds/base/users/datagueule/uploads

Bon visionnage!

Maj 23/05/15

Comme l’indique Damien dans les commentaires, l’url ci-dessus n’est désormais plus valide. En effet, suite à la mise à jour de l’API YouTube Data, Google a commencé à supprimer l’ancienne version à compter du 20 avril 2015. La nouvelle url à utiliser est donc la suivante:

https://www.youtube.com/feeds/videos.xml?user=<USERNAME>

Soit en reprenant notre exemple:

https://www.youtube.com/feeds/videos.xml?user=datagueule

Merci à lui!

Maj 23/05/16

Comme précisé par Doumé dans les commentaires, le paramètre à utiliser est différent lorsque l’url ne contient pas le nom d’utilisateur, mais l’identifiant de la chaîne Youtube. C’est le cas par exemple de la chaîne Veritasium dont l’url est la suivante :

https://www.youtube.com/channel/UCHnyfMqiRRG1u-2MsSQLbXA

Pour obtenir le flux RSS d’une chaîne, nous utiliserons donc la même url que précédemment, mais avec le paramètre channel_id, soit :

https://www.youtube.com/feeds/videos.xml?channel_id=<IDENTIFIANT>

Ce qui nous donne pour Veritasium :

https://www.youtube.com/feeds/videos.xml?channel_id=UCHnyfMqiRRG1u-2MsSQLbXA

Merci à Doumé pour cette précision !