Arquivo da tag: arquivo

Como criar um arquivo de tweets no Google Drive

O maior problema do Twitter é a volatilidade do conteúdo. Pesquisadores e jornalistas interessados em compreender ou monitorar um acontecimento a partir dessa rede social precisam contar com um programador para capturarem o conteúdo relevante diretamente através da API em tempo real, ou se contentar com os últimos 1500 tweets oferecidos nas buscas por usuários ou termos.

Mas para tudo há solução na Internet, se a pessoa procurar com boa vontade.

Nos últimos meses, passamos a usar no Editorial J uma gambiarra, aproveitando um script para gerar um fluxo RSS a partir de um widget do Twitter, desenvolvido por Amit Agarwal, e o serviço de automatização IFTTT.

O If This Then That (Se Isso, Então Aquilo) permite combinar conteúdo de diversas fontes em “receitas” que cobrem grande parte das necessidades de jornalistas e pesquisadores. Por exemplo, pode-se definir que todo tweet marcado como favorito será arquivado num documento no DropBox, ou até mesmo controlar lâmpadas inteligentes a partir do horário de nascer e pôr-do-sol de serviços de climatologia. Por alguma razão, entretanto, é pouco conhecido no Brasil. Em termos simples, é uma forma de programar sem saber programar.

Na época do Twitter de raiz, do Twitter arte, ainda era possível usar os fluxos RSS gerados pelas timelines dos usuários, listas e outros recursos e direcioná-los diretamente para uma planilha no Google Drive usando o IFTTT. Desde que o Twitter decidiu se fechar para controlar melhor seus negócios, entretanto, os fluxos RSS foram descontinuados. Então, é necessário contar com a ajuda dos hackers.

Amit Agarwal criou um script que pode ser rodado no Google Drive para capturar tweets. Sua aplicação é simples, embora exija um tanto de atenção. Segue abaixo uma tradução das instruções:

1. Antes de mais nada, registre-se no Twitter e vá para a página de criação de widgets. Crie o filtro que você deseja, como, por exemplo, uma busca por palavra-chave, um widget para uma lista específica de usuários, ou ainda um widget para a sua própria timeline, caso queira arquivar seus tweets.

2. Ao publicar o widget, o Twitter vai gerar um código de incorporação. Neste código, há um atributo “ID”, como no exemplo. Guarde o número após “data-widget-id”:

<a class="twitter-timeline" href="https://twitter.com/hashtag/VOTOJ" data-widget-id="518141229486182400">#VOTOJ Tweets</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>

3. Agora, clique neste link para copiar o script de Agarwal em sua conta do Google Drive. Selecione a aba “run” e, depois, “Twitter_RSS”, para autorizar a conexão ao Twitter.

4. Vá até a aba “publish” e escolha “deploy as Web App”, depois clique no botão “save a new version”. Na rubrica “who has access to the app”, defina “anyone, including anonymous”.
Com isso, o Google Script vai gerar uma URL para o aplicativo, semelhante a esta: https://script.google.com/macros/s/ABCD/exec. O trecho “ABCD” vai mudar conforme o seu usuário no Google Drive.

5. Agora, adicione um ponto de interrogação ao final desta URL, seguido pelo ID do widget que você criou no Twitter. No caso do widget acima, ela ficaria mais ou menos assim: https://script.google.com/macros/s/ABCD/exec?518141229486182400.

Assim, você já tem um endereço de fluxo RSS para usar no IFTTT. Se quiser, você pode usar esta receita que nós criamos para o Editorial J. Caso contrário, siga os seguintes passos:

  1. Em “channels”, ative o canal do Google Drive. Você precisará inserir seus dados de login do Google. O canal de RSS deve estar ativado por padrão.
  2. Em “my recipes”, escolha “create recipe”. Clique em “this” e selecione o botão laranja de “feed”. Escolha o “trigger”, ou gatilho, “new feed item”. Cole a URL gerada no processo anterior.
  3. Clique em “that” e escolha o canal do Google Drive. Depois, escolha a “action”, ou ação, “add row to spreadsheet”.
  4. Dê um nome à sua planilha. Em “formatted row”, você pode retirar ou incluir parâmetros. Clicando no ícone azul de garrafa de laboratório, é possível, por exemplo, incluir o autor dos tweets como um dos atributos a serem armazenados. Finalmente, defina uma pasta diferente para a planilha, se quiser.
  5. Clique em “create action” e — voilá! – você agora tem um sistema automatizado de arquivamente de tweets. (Ao menos, até o Twitter decidir mudar a API de novo.)

O IFTTT vai criar planilhas novas automaticamente toda vez que uma delas chegar aos mil registros, então, dependendo do tipo de conteúdo desejado, você pode vir a ter dezenas de planilhas XLS. Depois, basta consolidar tudo um só banco de dados.

Como obter do Twitter seu arquivo pessoal e passar a arquivar tweets você mesmo

ATUALIZAÇÃO: O Twitter criou uma funcionalidade para baixar os arquivos dos perfis, que ainda não está disponível para todos os clientes. É gratuito e basta ir até a página de configurações, rolar até o final e ver se o botão “Request your archive” está lá.

—————

No ano passado, o Twitter decidiu impor diversas restrições ao uso de sua API, tornando inviáveis vários serviços de arquivamento, como o IFTTT, por exemplo. A mudança ocorreu no momento em que a empresa anuncia um serviço para baixar os arquivos de atualizações — mediante pagamento, conforme alguns relatos.

Com isso, todos os produtos baseados na exportação de tweets para bancos de dados na nuvem (como Friendfeed, por exemplo) se tornam inviáveis. A nova política de uso da API só permite operações equivalentes a “salvar como” ou capturar a tela em PDF ou algum formato de arquivo de imagem. Na prática, não se pode mais criar quase nenhum tipo de mash-up a partir de tweets, ainda mais levando-se em conta que a partir de março de 2013 os fluxos Atom e RSS também serão abandonados à própria sorte, ou desligados, ainda não está muito claro.

Com essas mudanças, afirmam os executivos do Twitter, o serviço poderá oferecer uma “experiência mais consistente ao usuário”. Em tradução livre, significa que o Twitter está aderindo à contra-revolução iniciada pela Apple e se fechando cada vez mais, em busca de maior controle sobre seus produtos. Exceto que, ao contrário da App Store, no caso do Twitter o produto é composto principalmente de conteúdo gratuito gerado por seus clientes e pelas próprias subjetividades dos clientes, vendidas para anunciantes. Dave Winer, que nunca teme assumir o papel de Cassandra e avisar sobre os riscos de deixar propriedade intelectual sob a tutela de corporações, resume a indignação dos desenvolvedores de aplicativos para o Twitter:

Yes, this was unfair. Twitter had been telling developers, for years, that they should develop all kinds of clients. That was when Twitter was just a website and had no clients of its own. It bought a few of the developer products, and the advice changed. Really bad planning, and/or carelessness of the worst kind. I’m surprised there weren’t any lawsuits.

Se nunca se preocupou em tratar bem os desenvolvedores — a não ser quando precisava deles — muito menos o Twitter se preocupa em permitir aos usuários do serviço maior controle sobre seu arquivo de mensagens e imagens. Na verdade, sempre foi uma das piores plataformas de redes sociais neste aspecto: não apenas ficam disponíveis apenas os últimos 3200 tweets, como mesmo estes são acessíveis somente mediante operações técnicas relativamente complexas para o usuário comum. A maioria dos tweets desaparece das linhas de tempo entre uma e duas semanas após a publicação. Boa sorte tentando encontrá-los depois, sem saber a URL exata.

Tampouco o Twitter é transparente quanto a essas restrições. Normalmente, fica-se sabendo pela imprensa especializada sobre estas características. Por conta disso, só fui perceber o problema após ultrapassar a barreira dos 3200 tweets e me vi sem acesso ao conteúdo produzido por mim mesmo. Caveat emptor, é claro, mas não deixa de ser no mínimo antipático criar um modelo de negócios baseado em trabalho gratuito dos clientes e não oferecer aos escrav… — perdão! — colaboradores controle nem mesmo sobre a produção intelectual de sua propriedade.

Como obter todos os seus tweets

Buscando uma forma de obter meu arquivo de tweets, cheguei a este artigo da holandesa Anne Helmond, com um passo-a-passo para solicitar uma cópia de todos os seus dados junto ao setor jurídico do Twitter.

O texto com a solicitação é baseado numa lei européia, mas imaginei que eles não devem conhecer a lei brasileira, então mudei o artigo usado como argumento para um artigo do Código de Defesa do Consumidor. O texto abaixo foi enviado ao endereço Twitter-Legal@twitter.com.

NOME
RUA
CIDADE
CEP
PAÍS

DATA

To the Twitter Legal Department,

Re: @trasel

This is a request to access my personal data under Section VI of the LEI Nº 8.078, DE 11 DE SETEMBRO DE 1990, known as Brazilian Consumer Protection Act.

As a Twitter user based in Brazil I request records of the following:

All personal data that Twitter holds about me, inter alia
All logs of IP addresses associated with my account (because these are bound to my password-authenticated account and are thus identifiable)
Any records of the contacts stored on my mobile device that may have been collected by Twitter via the ‘Find Friends’ function, or any other information collected from a Twitter mobile client
Any records of disclosures of personal data to other parties, including law enforcement (such records of disclosures themselves constitute personal data)

I request this information to be delivered in machine-readable form, to the e-mail address registered to my Twitter account.

Data Subject Authentication

My name: Marcelo Ruschel Träsel

My current Twitter handle: @trasel

My e-mail address: XXXXXXXXXXXX@gmail.com

Please inform me, prior to processing this request, if you require a fee to be paid.

I look forward to receiving this information within 30 days. If you have any queries or questions regarding my request, please contact me by e-mail.
Yours faithfully,

Após o recebimento, o setor jurídico do Twitter envia uma mensagem com número de protocolo, à qual você deve apenas responder, sem acrescentar nada, para dar início ao processo. No mesmo dia, já recebi uma mensagem de um ser humano, oferecendo mais informações e confirmando o início do processo. Nesta mensagem, pediram o envio de um FAX de um documento de identidade com foto. Há serviços gratuitos de FAX online que permitem anexar arquivos e mandar para qualquer telefone no mundo. Tomei o cuidado de  rasurar todos os dados da carteira de identidade que não fossem minha foto e nome completo, para não dar mais informação do que o necessário.

Dentro de dois ou três dias, você deve receber no endereço de correio eletrônico vinculado a sua conta no Twitter uma cópia em PDF do pedido e a solicitação de que confirme, por e-mail mesmo, ter realizado o pedido de acesso à informação. Basta responder algo como “Yes, I confirm this request to disclose information was sent by me”.

Após este último passo, em cerca de uma semana você receberá uma mensagem com o endereço do link para baixar um arquivo ZIP com todas as informações solicitadas. O ZIP é um banco de dados em JSON, salvo engano, então será preciso usar algum aplicativo para uma leitura mais amigável. Por outro lado, o texto dos tweets está completo, com data, nesse banco, podendo ser lido com um esforço mínimo. O importante mesmo é que você terá em suas mãos todo o conteúdo criado para o Twitter durante anos como cliente do serviço.

Como arquivar seus tweets

Resta a questão de como arquivar seus tweets vindouros. A maneira mais fácil, sem ter de instalar nada num servidor próprio, é assinar o fluxo RSS num aplicativo adequado. Estou usando o próprio Thunderbird para tanto. Além disso, criei duas receitas no IFTTT, que exportam os tweets para o Dropbox e uma planilha no Google Docs, a partir do fluxo RSS.

O problema é que não se sabe o futuro dos fluxos RSS de contas do Twitter, então esses recursos podem deixar de funcionar em breve.

Para gerar o fluxo RSS de sua conta no Twitter, basta substituir os XXXX ao final da URL abaixo pelo seu nome de usuário:

http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=xxxxx

Depois, é só cadastrar a URL com seu nome de usuário numa das receitas do IFTTT, ou no seu leitor de RSS favorito.

Bônus: caso você use listas em sua conta do Twitter, aqui há um tutorial de como gerar o link para o fluxo RSS dessas listas.