❌

Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierKorben
  • ✇Korben
  • FxTwitter - L'API gratuite pour lire X sans compte
    Depuis que X a shooté Nitter et XCancel à grands coups de lettres d'avocat fin août, lire X sans compte c'est redevenu une méga galère. Mais il reste pourtant un outil que plein de gens utilisent sans le savoir, parce qu'il tourne dans les coulisses de Discord et Telegram. Son nom ? FxTwitter ! À la base, le projet FxEmbed , qui fait tourner FxTwitter et FixupX, sert à réparer les aperçus de liens X. Vous mettez f

FxTwitter - L'API gratuite pour lire X sans compte

Par : Korben ✨
25 septembre 2026 à 11:34

Depuis que X a shooté Nitter et XCancel à grands coups de lettres d'avocat fin août, lire X sans compte c'est redevenu une méga galère. Mais il reste pourtant un outil que plein de gens utilisent sans le savoir, parce qu'il tourne dans les coulisses de Discord et Telegram. Son nom ?

FxTwitter !

À la base, le projet FxEmbed , qui fait tourner FxTwitter et FixupX, sert à réparer les aperçus de liens X. Vous mettez fx devant twitter.com (ou fixup devant x.com) et Discord affiche enfin la vidéo, le sondage ou toutes les images du post. Sauf que derrière, il y a surtout une API publique et gratuite, api.fxtwitter.com, qui affiche n'importe quel post public en JSON sans avoir besoin de compte ou de clé API facturé une couille. Ché Elon !

Alors oui, les rageux diront que x.com affiche encore n'importe quel post isolé à un visiteur déconnecté, même les longs, mais sur un profil, ça s'arrête à 5 posts avant de vous demander de "Continuer sur X". Et surtout, ça ne vous affichera pas les vidéos et ça ne vous permettra pas d'avoir ça sous la forme d'un flux RSS.

Alors que FxTwitter, lui, nous sort tout ça sans avoir à ouvrir x.com !

Lire un post dans le navigateur

Maintenant pour nos tests, prenons un vieux de la vieille, un vétéran, le post numéro 20 de @jack, publié le 21 mars 2006 et dont l'URL est x.com/jack/status/20. Le nombre à la fin, c'est l'identifiant du post.

Collez tout simplement cet identifiant au cul de api.fxtwitter.com/2/status/ et ouvrez ça dans votre navigateur :

https://api.fxtwitter.com/2/status/20

Et vous obtiendrez un gros pavé en JSON avec dedans le texte du post dans le champ "text", l'auteur dans "author", et un peu plus bas vous trouvez les likes, les reposts, les réponses et la date.

Le post 20 de @jack vu par l'API : le texte dans le champ text, l'auteur juste en dessous.

Et si vous avez la flemme de recopier l'identifiant (vous êtes toujours dans l'abus, vous ^^), remplacez simplement x.com par api.fxtwitter.com dans l'adresse complète du post et voilà ! Ça marche à tous les coups, même si c'est le retour de l'ancienne version de l'API, conservée pour la compatibilité.

Le texte et sa traduction avec curl

Pour utiliser ça avec un script, je vous conseille d'utiliser curl pour faire la requête et jq pour trier tout ça ( jq, c'est le petit utilitaire qui extrait un champ précis d'un JSON ).

Ainsi, pour n'afficher que le texte du post :

curl -s "https://api.fxtwitter.com/2/status/20" | jq -r '.status.text'

Et si le post n'est pas en français, ajoutez ?lang=fr à l'adresse et hop, magie magie, l'API glisse alors un bloc "translation" dans la réponse, avec le texte en français :

curl -s "https://api.fxtwitter.com/2/status/20?lang=fr" | jq -r '.status.translation.text'

Le texte d'origine du post 20, puis sa traduction demandée avec ?lang=fr.

La traduction provient de X lui-même quand elle existe (sur ce post, le champ "provider" indiquait "grok"), sinon l'API se rabat avec joie sur un service de traduction. Et pour un profil, c'est le même principe avec /2/profile/ : api.fxtwitter.com/2/profile/jack qui affichera la bio de @jack, son nombre d'abonnés et sa date d'inscription. Les autres "routes" qui récupèrent les fils, les abonnés ou les médias d'un compte sont dans la documentation de l'API .

Elle est pas belle la vie ?

Récupérer une vidéo

Maintenant, on va rentrer dans le dur parce qu'ici, pour récupérer une vidéo, vous n'avez pas besoin d'API. Suffit de jouer avec l'adresse.

Mettez d. devant fxtwitter.com et le lien vous renverra directement le fichier, sans HTML autour. Avec curl, ça donne ça (le -L sert à suivre la redirection) :

curl -L -o video.mp4 "https://d.fxtwitter.com/NASA/status/2102748685792596449"

Grâce à ça, on peut par exemple récupérer le MP4 de cette vidéo bien kitchou de 30 secondes de la NASA. Et ajouter .mp4 à la fin d'une adresse fxtwitter.com fera la même chose. Et pour choisir la qualité, jetez un œil au JSON du post, où la liste des formats de media.videos donne chaque version de la vidéo avec son adresse et son bitrate.

Suivre un compte en RSS

Dernier truc que je trouve pratique avec cet outil c'est que chaque compte public peut avoir son flux RSS. Il suffit d'ajouter /feed.xml après le nom du compte :

https://fxtwitter.com/korben/feed.xml

Collez ensuite ça dans votre lecteur RSS et vous suivrez le compte X de vos rêves sans avoir à y mettre les pieds. Le flux remonte ainsi les 90 derniers posts par défaut, et le paramètre ?count= permet de réduire ce nombre ou de l'augmenter jusqu'à 100 maximum. Et si vous remplacez feed.xml par media.xml vous ne verrez dans le flux que les posts contenant des photos ou des vidéos. Et si vous ajoutez ?with_replies=1 vous verrez aussi les réponses.

Ce qui coince

Maintenant ce qui peut être relou, c'est que l'API n'encaisse que 1 000 requêtes par minute et par adresse IP. Par contre, si vous pensiez absorber tout x.com sans la moindre vergogne, vous allez vite vous retrouver coincé.

Attention aussi au domaine que vous tapez. Les seuls officiels sont fxtwitter.com, twittpr.com, fixupx.com, xfixup.com et fxbsky.app pour Bluesky. Je précise ça parce qu'il y a eu, par exemple un fxtwiter.com avec un t en moins, qui a été signalé sur le dépôt du projet et qui renvoyait les gens vers des arnaques.

Comme d'hab, une faute de frappe et c'est le drame... Soyez très vigilants.

Maintenant, si vous êtes un petit peu curieux comme moi, vous vous êtes sûrement demandé comment FxTwitter récupérait tout ça ??

Eh bien, comme le fait Nitter, ou plutôt comme le faisait Nitter , il récupère les données en utilisant de vrais comptes X sur lesquels il répartit les requêtes. Et comme c'est ce qui a été reproché à Nitter, je me dis qu'il y a des chances qu'à un moment FxEmbed soit visé aussi.

On verra bien, mais si un jour le service tombe, sachez que le code est bien dispo sous licence MIT, donc vous pouvez le faire tourner chez vous sans problème dans un Docker. Et si vous n'utilisez pas de compte X connecté dessus, ça marchera quand même avec, c'est vrai, des limites de requêtes plus basses et surtout sans accès au contenu NSFW (Et ça, je sais que ça vous rend super triste.)

Source : GitHub

  • ✇Korben
  • Trurl, un outil super pratique pour manipuler les URL
    Aujourd’hui, je vais vous causer d’un petit outil bien pratique qui va vous changer la vie (je sais, j’abuse jamais) : trurl ! Alors c’est quoi trurl ? Ben c’est juste un programme en ligne de commande, inspiré de notre bon vieux pote tr, qui permet de parser et manipuler les URL. Ça a l’air tout bête dit comme ça, mais je peux vous dire que c’est super pratique et vachement puissant. Parce que les URL, c’est pas toujours facile à gérer. Entre les caractères spéciaux, les encodages, les

Trurl, un outil super pratique pour manipuler les URL

Par : Korben
12 août 2024 à 09:00

Aujourd’hui, je vais vous causer d’un petit outil bien pratique qui va vous changer la vie (je sais, j’abuse jamais) : trurl !

Alors c’est quoi trurl ? Ben c’est juste un programme en ligne de commande, inspiré de notre bon vieux pote tr, qui permet de parser et manipuler les URL. Ça a l’air tout bête dit comme ça, mais je peux vous dire que c’est super pratique et vachement puissant.

Parce que les URL, c’est pas toujours facile à gérer. Entre les caractères spéciaux, les encodages, les paramètres de requête, les fragments, y a de quoi s’arracher les cheveux. Et puis mal implémenté, ça peut apporter son lot de failles de sécurité si on n’y fait pas gaffe. Mais avec trurl, pas de prise de tête ! Il utilise le parser d’URL de la librairie libcurl, qui est hyper robuste et éprouvé, du coup, vous pouvez manipuler vos URL en toute sérénité.

Rien qu’avec une petite commande toute simple, vous pouvez par exemple :

  • Changer le nom de domaine d’une URL
  • Modifier le port
  • Extraire le chemin
  • Ajouter des paramètres de requête
  • Trier les paramètres par ordre alphabétique
  • Supprimer certains paramètres
  • Encoder/décoder des caractères spéciaux
  • Reformater l’URL en JSON
  • Et plein d’autres trucs !

Genre si je veux changer le nom de domaine d’une URL, je fais juste :

trurl --url https://korben.info --set host=example.com
https://example.com/

Et bim, c’est fait ! Fastoche non ? Plus besoin de se taper des RegEx de 3km de long ou de réinventer la roue à chaque fois.

Ce que j’aime bien aussi, c’est qu’on peut utiliser trurl de façon interactive en lui passant les URL au fur et à mesure, ou bien traiter tout un fichier d’URL d’un coup. Il gère même les espaces et autres caractères spéciaux sans broncher.

Par exemple, pour ajouter un paramètre à une URL existante :

trurl --url "https://example.com?param1=value1" --add-query "param2=value2"
https://example.com?param1=value1&param2=value2

Ou encore, pour supprimer un paramètre spécifique :

trurl --url "https://example.com?param1=value1&param2=value2" --remove-query "param1"
https://example.com?param2=value2

Côté installation, c’est méga simple aussi. Sur la plupart des distros Linux, vous devriez pouvoir l’installer direct depuis votre gestionnaire de paquets préféré. Sinon, les sources sont dispos sur GitHub.

Ça m’a permis de virer des tonnes de code crado bricolé à la main dans des scripts et de le remplacer par des commandes trurl bien propres. Par exemple, j’avais un script qui devait récupérer le flux RSS d’un site, filtrer certains paramètres de l’URL et ajouter un tracker pour les stats. Avant je faisais ça avec des RegEx et des concaténations dégueulasses, maintenant, en quelques commandes trurl, c’est réglé !

curl "https://example.com/feed.xml" | trurl --query-sort --query-exclude "utm_*" --add-query "tracker_id=korben"

Attention quand même, trurl a quelques limitations à connaître. Par exemple, il ne gère pas les redirections tout seul, faudra passer par curl si besoin. Et pour certains cas tordus avec des caractères exotiques, il pourrait y avoir des surprises. Donc prudence, pensez à toujours tester avant de balancer en prod !

Sinon astuce bonus, trurl a une option --accept-space bien pratique quand vos URL contiennent des espaces. Et le --sort-query est top pour remettre de l’ordre dans vos paramètres.

A demain !

  • ✇Korben
  • Sink – Un raccourcisseur d’URL simple et sécurisé avec des statistiques
    Vous cherchez une méthode simple et efficace pour raccourcir vos URLs tout en gardant un œil sur les statistiques ? Sink peut vous aider ! Ce raccourcisseur d’URL nouvelle génération combine simplicité d’utilisation, rapidité et sécurité, et il est entièrement déployable sur Cloudflare, donc pas besoin de gérer de serveurs ! Avec cet outil, les URLs longues et illisibles laissent la place à des liens propres et mémorisables, que vous pouvez personnaliser avec vos slugs comme bon vous semble

Sink – Un raccourcisseur d’URL simple et sécurisé avec des statistiques

Par : Korben
27 mai 2024 à 17:20

Vous cherchez une méthode simple et efficace pour raccourcir vos URLs tout en gardant un œil sur les statistiques ? Sink peut vous aider ! Ce raccourcisseur d’URL nouvelle génération combine simplicité d’utilisation, rapidité et sécurité, et il est entièrement déployable sur Cloudflare, donc pas besoin de gérer de serveurs !

Avec cet outil, les URLs longues et illisibles laissent la place à des liens propres et mémorisables, que vous pouvez personnaliser avec vos slugs comme bon vous semble. Et si l’inspiration vous manque, pas de souci puisque Sink dispose d’un assistant IA intégré pour vous suggérer des slugs intelligents basés sur le contenu de votre page.

Maintenant parlons analytics… Avec Sink, vous pouvez suivre les statistiques de vos liens comme un pro : Combien de clics, d’où viennent-ils, à quelle heure sont-ils arrivés…etc, vous aurez toutes les stats pour frimer (ou optimiser vos campagnes, au choix).

Sink utilise les dernières technologies à la mode :

  • Nuxt pour le framework
  • Cloudflare Workers KV pour la base de données
  • Cloudflare Workers Analytics Engine pour les analytiques
  • Shadcn-vue pour les composants d’interface
  • Tailwind CSS pour le style
  • Et bien sûr, le tout est déployé sur Cloudflare !

Avec un combo pareil, vous êtes parés à affronter le trafic le plus intense et vos liens tiendront la route !

En plus c’est open source, alors pourquoi hésiter ?

Pour déployer cet outil, c’est simple :

Étape 1 – Forkez le Dépôt
1. Rendez-vous sur la page GitHub de Sink.
2. Cliquez sur le bouton « Fork » en haut à droite pour forker le dépôt dans votre propre compte GitHub.

Étape 2 – Créez un Projet Cloudflare Pages
1. Accédez à Cloudflare Pages.
2. Cliquez sur « Create a project ».
3. Sélectionnez le dépôt « Sink » forké précédemment.
4. Choisissez le preset « Nuxt.js ».

Étape 3 – Configurez les Variables d’Environnement
Ajoutez les variables environnementales suivantes :
– NUXT_SITE_TOKEN : configurez un token de site supérieur à 8 caractères.
– NUXT_CF_ACCOUNT_ID : trouvez votre Cloudflare Account ID ici.
– NUXT_CF_API_TOKEN : générez un token d’API Cloudflare avec les permissions nécessaires en suivant ce guide.

Étape 4 – Déploiement Initial
Cliquez sur « Save and deploy ». Si le déploiement échoue, annulez-le et passez à l’étape suivante.

Étape 5 – Configurez les Fonctionnalités

1. Allez dans Settings -> Functions dans Cloudflare Pages.
2. KV namespace bindings : Associez KV à une namespace KV existante ou nouvelle.
3. Workers AI Bindings (optionnel) : Associez AI au catalogue Workers AI.
4. Analytics Engine Binding : Associez ANALYTICS au dataset sink et activez le Cloudflare Analytics Engine Beta pour votre compte.

Étape 6 – Redéployez le Projet : Après avoir configuré les bindings, redéployez le projet depuis Cloudflare Pages.

Étape 7 : y’a plus qu’à accédez à votre tableau de bord déployé, à raccourcir un lien en utilisant l’interface, à le personnaliser avec un slug, à le diffuser puis à consulter l’analytique de vos liens pour suivre les clics et l’engagement.

Pour tester Sink c’est par ici !

❌
❌