Автоматическое управление Twitter фермой софтом
Автор статьи - https://t.me/easypeoff
Софт - https://github.com/3asyPe/twitter-automation
В этой статье мы разбирали как создавать ферму и управлять ей руками, тут разберем как автоматизировать ее управление.
Для этого я буду использовать мой бесплатный софт
Для человека не знакомого с кодом, настройка будет довольно тяжелой, но значительно упростит вам жизнь :)
Если возникают проблемы, можете написать в наш чат, велик шанс, что вам помогут.
❗️Пользуйтесь софтом очень аккуратно, при слишком частых и повторяющихся действиях возможны массовые баны аккаунтов
Навигация по гайду
Возможности софта
Следить за обновлениями можно здесь
- Подписать аккаунты на конкретного пользователя по @username
- Подписать аккаунты на пользователей из файла, состоящего из списка @username
- Подписать аккаунты между собой
- Отписать аккаунты от конкретного пользователя по @username
- Отписать аккаунты от пользователей из файла, состоящего из списка @username
- Написать конкретный твит с каждого аккаунта (в консоли нужно будет вписать конкретный твит для конкретного аккаунта)
- Написать рандомные твиты из файла сгенерированных заранее твитов
- Асинхронный запуск (очень много аккаунтов сразу)
- Прокси под каждый аккаунт
- UserAgent (индетификатор браузера) под каждый аккаунт
- Если аккаунт банится, то софт об этом напишет и запишет в файл
- Все нужные задержки между запросами и попытками повторов
Установка
1 - Установите Python 3.11 или выше
git clone git@github.com:3asyPe/twitter-automation.git
Или путем обычного скачивания zip:
Перейдите в репозиторий софта -> зеленая кнопка code -> Download ZIP
3 - Перейти в директорию проекта в консоли (PowerShell для пользователей windows)
cd <путь куда вы скачали проект>
cd D:/twitter-automation
cd ~/twitter-automation
Способ 1
- Создать виртуальное окружение
python -m venv venv
- Активировать виртуальное окружение (нужно будет делать каждый раз перед запуском софта)
venv/Scripts/activate
Для пользователей Mac и linux:
source venv/Scripts/activate
pip install -r requirements.txt
Способ 2
- Установить poetry
- Активировать виртуальное окружение (нужно будет делать каждый раз перед запуском софта)
poetry shell
poetry install
Общие настройки
config.py
Файл с общими настройками скрипта.
PATH_TO_WRITE_SUSPENDED_ACCOUNTS - путь к файлу, куда записывать suspended аккаунты
PATH_TO_WRITE_LOCKED_ACCOUNTS - путь к файлу, куда записывать locked аккаунты
PATH_TO_WRITE_INVALID_TOKENS - путь к файлу, куда записывать аккаунты с не валидным токеном авторизации
THREADS - количество потоков (сколько аккаунтов делать одновременно)
MIN_RETRIES - минимальное количество попыток повторить запрос при ошибке
MAX_RETRIES - максимальное количество попыток повторить запрос при ошибке
RANDOMIZE_ACCOUNTS - Если True, то перемешать аккаунты, если False, оставить в той последовательности, как они записаны
MIN_RETRY_DELAY - минимальная задержка между попытками повторных запросов
MAX_RETRY_DELAY - максимальная задержка между попытками повторных запросов
MIN_SLEEP_BEFORE_NEXT_ACCOUNT - сколько минимально ждать перед запуском следующего аккаунта в текущем потоке (рекомендуется ставить как можно больше)
MAX_SLEEP_BEFORE_NEXT_ACCOUNT - сколько максимально ждать перед запуском следующего аккаунта в текущем потоке (рекомендуется ставить как можно больше)
MIN_SLEEP_BEFORE_NEXT_REQUEST - сколько минимально ждать перед следующим запросом на текущем аккаунте (рекомендуется ставить как можно больше)
MAX_SLEEP_BEFORE_NEXT_REQUEST - сколько максимально ждать перед следующим запросом на текущем аккаунте (рекомендуется ставить как можно больше)
data/accounts.txt
Файл с auth_token'ами от аккаунтов. Каждый токен с новой строки
Как получить токен от аккаунта
1) Ставим расширение EditThisCookie
3) Нажимаем на расширение и копируем значение auth_token
data/proxies.txt
Файл с прокси. Каждая прокси с новой строки по примеру из data/proxies.example.txt
data/user_agent.txt
Файл с идентификаторами браузера (user agent)
Гуглите свой user_agent запросом, например my user agent
Гуглите разные существующие user_agent'ы, и каждый раз исплользуете их для конкретных аккаунтов (как с прокси, 1 user_agent - 1 аккаунт)
module_settings.py
Файл для настройки конкретных модулей
Модуль подписок
Модуль для массовых подписок. Существует 3 режима работы:
1 - Подписка на конкретного пользователя
Вы запускаете пачку аккаунтов -> все аккаунты подписываются на введенного вами в настройках пользователя
2 - Подписка на пользователей из файла
Вы вводите @username'ы пользователей в файл -> запускаете пачку аккаунтов -> аккаунты подписываются на 1 или нескольких пользователей (в зависимости от настроек) из файла
3 - Подписка аккаунтов между собой
Вы запускаете пачку аккаунтов -> аккаунт подписываются на 1 или несколько аккаунтов из запущенных вами (в зависимости от настроек)
Настраивается в module_settings.py в переменной MODULES_SETTINGS под ключом TwitterModulesNames.FOLLOW
- TwitterFollowModes.FOLLOW_ONE_USER - подписаться на одного пользователя по @username
- TwitterFollowModes.FOLLOW_USERS_FROM_FILE - подписаться на пользователей из файла, состоящего из списка @username'ов
- TwitterFollowModes.FOLLOW_ACCOUNTS_BETWEEN_EACH_OTHER - подписать запущенные аккаунты между собой
username - если у вас выбран mode = TwitterFollowModes.FOLLOW_ONE_USER, то здесь указывается @username пользователя, на который нужно подписать аккаунты
users_file - если у вас выбран mode = TwitterFollowModes.FOLLOW_USERS_FROM_FILE, то здесь указывается путь к файлу, состоящего из @username'ов пользователей, на которые нужно подписать аккаунты. Каждый @username с новой строки
min_number_of_accounts - если у вас выбран mode = TwitterFollowModes.FOLLOW_USERS_FROM_FILE или mode = TwitterFollowModes.FOLLOW_ACCOUNTS_BETWEEN_EACH_OTHER, то здесь указывается минимальное количество пользователей, на которое нужно подписать ваши аккаунты
max_number_of_accounts - если у вас выбран mode = TwitterFollowModes.FOLLOW_USERS_FROM_FILE или mode = TwitterFollowModes.FOLLOW_ACCOUNTS_BETWEEN_EACH_OTHER, то здесь указывается максимальное количество пользователей, на которое нужно подписать ваши аккаунты
all_accounts - если у вас выбран mode = TwitterFollowModes.FOLLOW_USERS_FROM_FILE или mode = TwitterFollowModes.FOLLOW_ACCOUNTS_BETWEEN_EACH_OTHER, то если стоит значение True, софт подпишет аккаунты на всех пользователей, иначе только на рандомное значение от min_number_of_accounts до max_number_of_accounts
Модуль отписок
Модуль для массовых отписок. Существует 2 режима работы:
1 - Отписка от конкретного пользователя
Вы запускаете пачку аккаунтов -> все аккаунты отписываются от введенного вами в настройках пользователя
2 - Отписка от пользователей из файла
Вы вводите @username'ы пользователей в файл -> запускаете пачку аккаунтов -> аккаунты отписываются от 1 или нескольких пользователей (в зависимости от настроек) из файла
Настраивается в module_settings.py в переменной MODULES_SETTINGS под ключом TwitterModulesNames.UNFOLLOW
- TwitterUnfollowModes.UNFOLLOW_ONE_USER - отписаться от одного пользователя по @username
- TwitterUnfollowModes.UNFOLLOW_USERS_FROM_FILE - отписаться от пользователей из файла, состоящего из списка @username'ов
username - если у вас выбран mode = TwitterUnfollowModes.UNFOLLOW_ONE_USER, то здесь указывается @username пользователя, от которых нужно отписать ваши аккаунты
users_file - если у вас выбран mode = TwitterUnfollowModes.UNFOLLOW_USERS_FROM_FILE, то здесь указывается путь к файлу, состоящего из @username'ов пользователей, от которых нужно отписать ваши аккаунты. Каждый @username с новой строки
min_number_of_accounts - если у вас выбран mode = TwitterUnfollowModes.UNFOLLOW_USERS_FROM_FILE, то здесь указывается минимальное количество пользователей, от которых нужно отписать ваши аккаунты
max_number_of_accounts - если у вас выбран mode = TwitterUnfollowModes.UNFOLLOW_USERS_FROM_FILE, то здесь указывается максимальное количество пользователей, от которых нужно отписать ваши аккаунты
all_accounts - если у вас выбран mode = TwitterUnfollowModes.UNFOLLOW_USERS_FROM_FILE, то если стоит значение True, софт отпишет аккаунты от всех пользователей, иначе только на рандомное значение от min_number_of_accounts до max_number_of_accounts
Модуль твитов
Модуль для выставления публикаций. Существует 2 режима работы:
1 - Твитнуть конкретный твит на конкретном аккаунте
Вы запускаете пачку акаунтов -> как только очередь доходит до какого-то из них, выведется лог с просьбой ввести твит
2 - Твитнуть рандомный твит из заранее написанных в файле. Рекомендуется выставить как можно больше задержку между запросами (минимум несколько часов) и не выставлять слишком много твитов, чтобы не твитить слишком часто с одного аккаунта, иначе шанс бана крайне велик.
Вы просите ChatGPT сгеренировать вам много различных твитов (например связанных с темой крипты) -> вводите их в файл по примеру data/tweets.example.json -> запускаете пачку акаунтов -> софт постит рандомный твит или несколько (в зависимости от настроек) -> (опционально, в зависимости от настроек) удаляет выложенный текст твита из файла
Настраивается в module_settings.py в переменной MODULES_SETTINGS под ключом TwitterModulesNames.TWEET
- TweetModes.TWEET_FROM_INPUT - написать твит с каждого аккаунта вписывая по очереди в консоль (более подробное описание выше)
- TwitterTweetModes.TWEET_TWEETS_FROM_FILE - написать рандомные твиты из файла на каждом из аккаунтов
Все настройки дальше относятся к mode = TwitterTweetModes.TWEET_TWEETS_FROM_FILE:
min_number_of_tweets - наименьшее количество твитов на один аккаунт
max_number_of_tweets - наибольшее количество твитов на один аккаунт
all_tweets - если True, твитнуть все твиты из файла, иначе рандомное количество от min_number_of_tweets до max_number_of_tweets
tweets_file - путь до файла с твитами. Файл должен быть в json формате по примеру data/tweets.example.json
post_only_unique_tweets_on_all_accounts - если True, то софт не будет твитить уже выложенный твит на текущем или другом аккаунте
delete_written_tweets_from_file - если True и post_only_unique_tweets_on_all_accounts = True, то после завершения работы скрипта удалит из файла с твитами уже выложенные тексты
Модуль лайков
Модуль для лайка публикаций. Режим работы:
Лайкнуть рандомные твит или неколько из записаных в файле. Рекомендуется выставить как можно больше задержку между запросами (минимум несколько часов) и не лайкать слишком много твитов, чтобы не твитить слишком часто с одного аккаунта, иначе шанс бана крайне велик.
В файле должны быть TweetID по примеру data/likes.example.txt
Пример твита:
https://twitter.com/dopex_io/status/1727334269973143901
Где id = 1727334269973143901
Настраивается в module_settings.py в переменной MODULES_SETTINGS под ключом TwitterModulesNames.LIKE
mode - На данный момент единственно возможное значение:
min_number_of_likes - наименьшее количество лайков на твиты на один аккаунт
max_number_of_likes - наибольшее количество лайков на твиты на один аккаунт
all_tweets - если True, лайкнуть все твиты из файла, иначе рандомное количество от min_number_of_likes до max_number_of_tweets
tweets_file - путь до файла с твитами, которые нужно лайкнуть. Файл должен быть в txt формате и состоять из TweetID по примеру data/likes.example.json.
Модуль ретвитов
Модуль для ретвита публикаций. Режим работы:
Ретвитнуть рандомные твит или неколько из записаных в файле. Рекомендуется выставить как можно больше задержку между запросами (минимум несколько часов) и не ретвитать слишком много твитов, чтобы не твитить слишком часто с одного аккаунта, иначе шанс бана крайне велик.
В файле должны быть TweetID по примеру data/retweets.example.txt
Пример твита:
https://twitter.com/dopex_io/status/1727334269973143901
Где id = 1727334269973143901
Настраивается в module_settings.py в переменной MODULES_SETTINGS под ключом TwitterModulesNames.RETWEET
mode - На данный момент единственно возможное значение:
- TwitterRetweetModes.RETWEET_TWEETS_FROM_FILE - ретвитнуть рандомную публикацию из файла на каждом из аккаунтов
min_number_of_retweets - наименьшее количество ретвитов на один аккаунт
max_number_of_retweets - наибольшее количество ретвитов на один аккаунт
all_tweets - если True, ретвитнуть все публикации из файла, иначе рандомное количество от min_number_of_retweets до max_number_of_retweets
tweets_file - путь до файла с твитами, которые нужно ретвитнуть. Файл должен быть в txt формате и состоять из TweetID по примеру data/retweets.example.json.
Мои контакты
Telegram канал - тут я пишу про новые статьи, новости и про выход нового софта
GitHub - тут я пишу код