Randal's Friends - randal's friends vol 1
randal's friends vol 1

O que é o Randal's Friends

O Randal's Friends é um script em Python criado para automatizar a interação com o bot Randal, aquele robô do subreddit r/answers que responde perguntas sobre fatos aleatórios. Basicamente, ele loga numa conta do Reddit e manda mensagens pra Randal em cadeia, coletando as respostas automaticamente. A ideia original era gerar conteúdo para blogs de curiosidades ou testar o bot em larga escala.

Como funciona o Randal's Friends na prática

Eu comecei a usar isso em 2018, quando ainda dava pra rodar com uma conta vanilla do Reddit sem muito problema. O script se baseia na API do Reddit (usando o módulo praw) e faz requisições de mensagem direta pra Randal repetidamente. Você passa uma lista de prompts e ele vai coletando as respostas em um arquivo de saída. O funcionamento é simples: autenticar com o praw, enviar uma mensagem prr/AskReddit ou direto no inbox do Randal, ler a resposta, salvar, repetir. O loop pode rodar centenas de vezes até a conta ser rate-limited ou banida. Isso é importante porque o Randal tem um limite rígido de requisições por hora, e o Reddit também puni conta com automação suspeita.

Instalação e configuração

Você precisa ter Python 3 instalado, preferencialmente uma versão recente. O comando básico de instalação depende de onde você busca o script, mas os requisitos principais são praw e requests. Clone o repositório, entre na pasta e rode o instalador de dependências. Depois disso, você cria um app no Reddit em https://www.reddit.com/prefs/apps pra obter o client_id e client_secret. Anota essas credenciais num arquivo de configuração que o script lê. O formato padrão pede username, password, client_id, client_secret e às vezes user_agent. Sem um user_agent adequado, o Reddit bloqueia a requisição direto.

Uso básico

A forma mais comum de rodar é passando um arquivo de texto com os prompts, um por linha. Cada linha vira uma mensagem enviada ao Randal. O script escreve as respostas num arquivo separado, geralmente no formato promptresposta. O tempo de execução varia muito dependendo da quantidade de prompts e da taxa de rate limit. Com duzentas linhas, costuma levar entre trinta minutos e uma hora, nunca menos. Um detalhe que muita gente esquece: o Randal às vezes demora pra responder. Se o script não esperar o tempo certo entre as mensagens, ele acaba enviando várias antes da resposta anterior chegar e aí você perde contexto ou entra num loop de erro. Eu ajustei o sleep entre requisições pra pelo menos três segundos e adicionei um wait dinâmico baseado na presença da resposta no inbox.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Problema real que eu enfrentei e como resolvi

Numa vez que eu rodava o script pracollect dados pra um projeto, o praw começou a retornar Erro 429 continuamente depois de umas cem requisições. A conta não tinha sido banida, apenas estava sendo rate-limited pelo Reddit. O problema é que o script original não tratava esse cenário e travava o loop inteiro. A solução foi implementar um backoff exponencial: cada 429 aumenta o tempo de espera em dobro, começando de dois segundos e indo até trinta segundos. Isso resolveu e permitiu continuar coletando sem precisar trocar de conta. Também notei que o Randal às vezes responde com "I don't know" pra perguntas muito ambiguas ou muito específicas. Isso não é bug, é comportamento esperado. O bot treina com dados públicos e tem gaps enormes em tópicos técnicos ou regionais. Se seu objetivo é dados de qualidade, prepare-se pra filtrar bastante coisa depois.

Limitações e armadilhas

O Randal's Friends não é uma solução perfeita. Existem problemas sérios que todo mundo ignora no começo. Primeiro, o Reddit mudasuas políticas de automação ao longo dos anos. O que funcionava em 2019 muitas vezes não funciona mais. O praw evoluiu, os endpoints mudaram, e scripts antigos quebram sem aviso. Sempre verifique a versão do praw e a compatibilidade do script antes de rodar.

Segundo, o Randal em si foi descontinuado. O bot original parou de responder corretamente há alguns anos. Tentativas recentes podem simplesmente não retornar nada ou retornar respostas obsoletas. Se você quer algo similar hoje, alternativas como usar a API do Reddit combinada com LLMs próprios funcionam melhor e não dependem de um bot terceirizado. Terceiro, há questões éticas e legais. Usar automação pra interagir com bots alheios pode violar os termos de serviço do Reddit. Eu já vi contas bans por isso. Se você for usar, use com conta própria, respeite os rate limits e não faça spam.

Randal's Friends alternativa para quem quer algo mais estável

Se o objetivo é só gerar respostas tipo "fato aleatório" num volume maior, vale a pena considerar construir um pipeline próprio com uma API de linguagem. O custo por requisição é baixo, a consistência é muito melhor, e você não corre risco de ter tudo interrompido porque um bot de terceiros foi desligado. Eu migrei pra essa abordagem e economizei muitas horas de manutenção. De qualquer forma, se você ainda quer rodar o Randal's Friends por curiosidade ou proplema específico, encontrei referências do repositório original em sites como GitHub e fóruns antigos. Sempre baixe de fontes confiáveis, escaneie o código antes de executar, e nunca use credenciais de contas principais. Tenha uma conta secundária pronta pro teste, com pouca ou nenhuma informação pessoal vinculada.

O script em si é pequeno, talvez trezentas linhas no máximo. A maior parte do tempo vai em debug de rate limit e tratamento de erros de rede, não na lógica em si. Se você tem experiência básica com Python e API REST, consegue entender e modificar sem dificuldade. Se não tem, prepare-se pra ler bastante documentação do praw e ajustar manualmente.