O problema
Eu sempre fui um ávido usuário dos bookmarks do Twitter (ou X, como preferir). Salvo links, threads, artigos e ideias o tempo todo. Mas com o tempo, minha lista de bookmarks cresceu para centenas de itens — e a busca nativa do Twitter simplesmente não funciona bem.
Além disso, não há uma maneira nativa de exportar seus bookmarks para usar em outro lugar. Eles ficam presos no Twitter.
Foi assim que decidi criar minha própria extensão.
A solução
Uma extensão para navegadores Chromium (Edge, Chrome, Brave) que exporta seus bookmarks do X/Twitter para formatos portáteis:
- JSON — para processamento programático
- CSV — para abrir no Excel, Google Sheets ou Airtable
- Markdown — para levar para o Obsidian, Notion ou qualquer ferramenta de notas
Como funciona
A extensão tem três partes principais:
1. Content Script — O content.js é injetado na página do Twitter. Ele scaneia a lista de bookmarks, extraindo título, autor, URL do tweet, data e conteúdo do texto.
2. Background Script — O background.js gerencia a comunicação entre a extensão e o servidor, além de controlar o fluxo de exportação.
3. Popup — Interface simples que aparece ao clicar no ícone da extensão. Você escolhe o formato e inicia a exportação.
Código relevante
O manifesto da extensão (manifest.json) declara as permissões necessárias:
{
"manifest_version": 3,
"name": "Twitter Bookmarks Export",
"version": "1.0",
"permissions": ["storage", "activeTab"],
"host_permissions": ["https://x.com/*", "https://twitter.com/*"],
"background": { "service_worker": "background.js" },
"content_scripts": [{
"matches": ["https://x.com/i/bookmarks*"],
"js": ["content.js"]
}]
}Fluxo de exportação
- Você abre a página de bookmarks (
x.com/i/bookmarks) - Clica no ícone da extensão
- Escolhe o formato (JSON, CSV ou Markdown)
- A extensão navega pela lista, coletando cada bookmark
- Os dados são baixados como arquivo ou enviados para o servidor (se configurado)
O backend
Além da extensão, criei um backend em PHP (twitter-bm-server/api.php) que recebe os bookmarks exportados e oferece funcionalidades extras:
- Categorização automática — usando LLM para classificar bookmarks por tema
- Tags inteligentes — o
tag_with_llm.pyanalisa o conteúdo e sugere tags - Dashboard — uma interface web para navegar, buscar e gerenciar seus bookmarks
Por que isso é útil
Para quem consome muito conteúdo no Twitter, os bookmarks são uma mina de ouro. Mas sem uma ferramenta de busca e organização, eles viram um cemitério de links.
Com essa extensão, você pode:
- Exportar para o Obsidian e construir seu segundo cérebro
- Criar uma base de curadoria para newsletters ou posts
- Alimentar um dashboard pessoal com links classificados
- Simplesmente ter um backup dos seus salvos
Como instalar
- Clone o repositório
- Abra
edge://extensions/(ouchrome://extensions/) - Ative o Modo desenvolvedor
- Clique em Carregar sem compactação
- Selecione a pasta da extensão
O código está disponível nos servidores da Assistentia. Se quiser usar, é só pedir.
O que aprendi
Construir essa extensão me ensinou bastante sobre:
- O sistema de Manifest V3 do Chrome (mudanças em relação ao V2)
- Como navegadores gerenciam service workers para extensões
- Injeção de conteúdo dinâmico em páginas SPA (Single Page Applications)
- Manipulação da Shadow DOM e elementos dinâmicos do React (sim, o Twitter usa React)
- Rate limiting e como não ser bloqueado ao fazer scraping no próprio navegador
No geral, foi um projeto divertido que resolveu um problema real que eu tinha. E o melhor: funciona tanto no Edge quanto no Chrome e Brave sem qualquer modificação.