ZipFileSender é uma ferramenta para automatizar o envio de arquivos para canais do Telegram. O programa divide automaticamente os arquivos em partes de tamanho adequado para o Telegram (por padrão, até 1900 MB), compacta-os e envia sequencialmente para o canal configurado.
Existe um repositório aonde o mantenedor diz ter parte do seu código copiado por mim, sem problemas aqui está uma menção pelos nomes iguais: https://github.com/viniped/Zip-File-Sender
- Autenticação via API do Telegram (api_id e api_hash)
- Divisão automática de arquivos em partes
- Compressão paralela usando múltiplas threads
- Barra de progresso para acompanhamento em tempo real
- Configuração flexível via arquivo config.json
- Suporte a legendas personalizadas
- Tratamento de erros e reconexão automática
- Python 3.7 ou superior
- Bibliotecas listadas em requirements.txt
- API ID e API Hash do Telegram (obtenha em https://my.telegram.org)
- Clone ou baixe este repositório
- Execute o arquivo
main.batpara iniciar o programa
- Clone ou baixe este repositório
- Instale as dependências:
pip install -r requirements.txt - Execute o programa:
python main.py
- Obtenha seu API ID e API Hash em https://my.telegram.org
- Execute o programa pela primeira vez para autenticar com suas credenciais
- Configure o ID do canal no arquivo
config.json - Coloque as pastas que deseja enviar na pasta
input/ - Execute o programa novamente para iniciar o processamento e envio
O ID do canal deve estar no formato correto para que o programa funcione. Existem várias maneiras de obter o ID do canal:
-
Para canais públicos: Use o nome de usuário do canal com @ (exemplo:
@meucanal). -
Para canais privados: Você precisará do ID numérico do canal, que geralmente começa com
-100seguido de números. Para obter este ID:- Envie uma mensagem para o canal
- Encaminhe esta mensagem para @userinfobot
- O bot responderá com informações incluindo o ID do chat/canal
-
Formatos aceitos no config.json:
- Nome de usuário:
@meucanal - ID numérico completo:
-1001234567890 - ID numérico simples:
-1234567890(o programa tentará adicionar o prefixo correto)
- Nome de usuário:
IMPORTANTE: Você deve ser membro do canal e ter permissões para enviar mensagens nele.
input/: Coloque aqui as pastas com arquivos a serem enviadosoutput/: Arquivos processados e compactadosconfig.json: Configurações do programacaption.txt: Texto que será usado como legenda para imagens
{
"channel_id": "seu_canal_id",
"max_size_mb": 1900,
"threads": 4,
"compression_level": 0,
"delete_after_upload": true,
"max_concurrent_transmissions": 2
}channel_id: ID do canal para envio dos arquivosmax_size_mb: Tamanho máximo de cada parte em MBthreads: Número de threads para compactação paralelacompression_level: Nível de compressão (0 = sem compressão, 9 = máxima)delete_after_upload: Se true, remove os arquivos originais após o enviomax_concurrent_transmissions: Número máximo de transmissões simultâneas (uploads). Aumentar este valor pode melhorar a velocidade de envio, mas valores muito altos podem causar bloqueios temporários.
Se o script ficar travado ao buscar seus canais ou não mostrar nenhum canal quando você sabe que tem acesso a pelo menos um, tente estas soluções:
-
Verifique sua sessão do Telegram:
- Remova o arquivo
user.sessione reinicie o programa para criar uma nova sessão
- Remova o arquivo
-
Problemas de rede:
- Se estiver usando VPN, tente desativar temporariamente
- Verifique sua conexão com a internet
-
Inserção manual do ID do canal:
- O script agora oferece a opção de inserir o ID do canal manualmente quando a busca automática falhar
- Para canais públicos, use o formato
@nome_do_canal - Para canais privados, use o ID numérico (geralmente começa com
-100) - Você pode obter o ID numérico usando bots como
@username_to_id_botno Telegram
-
Permissões:
- Certifique-se de que sua conta é membro do canal
- Você deve ter permissões para enviar mensagens no canal
Este erro geralmente ocorre quando:
- O ID do canal está em formato incorreto
- Você não é membro do canal
- O canal não existe
A nova funcionalidade de listagem e seleção de canais resolve este problema automaticamente ao mostrar apenas canais válidos aos quais você tem acesso.
- FloodWait: O programa irá esperar automaticamente o tempo necessário e tentar novamente
- Erros de conexão: Verifique sua conexão com a internet e tente novamente
- Falha na autenticação: Se a sessão estiver corrompida, o programa irá removê-la. Execute novamente e faça login.
- Timeout: Se o programa parecer travar durante a comunicação com o Telegram, reinicie-o e tente novamente
- Para arquivos de imagem (jpg, png), será usada a legenda do arquivo caption.txt
- Você pode colocar um arquivo "cover.jpg" ou "cover.png" em cada pasta para ser enviado como capa
- O programa mantém a sessão do Telegram, então você só precisa autenticar uma vez
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests.
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
Desenvolvido e mantido por Bypass.
Para melhorar a velocidade de envio dos arquivos, você pode ajustar as seguintes configurações:
-
Aumente o valor de
max_concurrent_transmissions:- Valores entre 2 e 4 geralmente funcionam bem
- Valores muito altos podem fazer com que o Telegram bloqueie temporariamente sua conta (FloodWait)
-
Ajuste o nível de compressão:
- Para arquivos que já estão comprimidos (como vídeos MP4, MP3, etc.), use
compression_level: 0 - Para arquivos não comprimidos, um valor de 1-3 oferece bom equilíbrio entre velocidade e tamanho
- Para arquivos que já estão comprimidos (como vídeos MP4, MP3, etc.), use
-
Requisitos de Rede:
- Uma conexão estável é mais importante que uma conexão rápida
- Evite usar VPNs durante o upload, pois podem reduzir a velocidade
-
Horário de Upload:
- Os servidores do Telegram podem estar mais lentos em horários de pico
- Tente fazer uploads em horários menos movimentados
-
Tamanho dos Arquivos:
- Arquivos menores tendem a fazer upload mais rápido
- O valor padrão de 1900 MB é o máximo recomendado para cada parte
Nota: O programa já implementa tamanhos de chunk otimizados baseados no tamanho do arquivo e utiliza múltiplas transmissões concorrentes para maximizar a velocidade.