Twitter automization test (4 factors, 32 accounts)

If that is the case.
I might be screwed.

Almost no service provides Korean based phone varificaition.
Checked sites like https://5sim.net/ or other websites, but NOPE.

I could buy my own phones, but that is limited by 3 lines per identity.

Wish this was not the case.
Why do you need Korean phone number? I do accounts in various geos locations and use USA numbers no issue
 
If that is the case.
I might be screwed.

Almost no service provides Korean based phone varificaition.
Checked sites like https://5sim.net/ or other websites, but NOPE.

I could buy my own phones, but that is limited by 3 lines per identity.

Wish this was not the case.
you can use other countrys numbers,
before chinese numbers were removed, a lot of twitter account sellers were using chinese numbers to create accounts.
 
Why do you need Korean phone number? I do accounts in various geos locations and use USA numbers no issue
Thanks, for the insight.

I just asumed that they would match the locations,
the ip address and the phone number.

Will try out if things fail.
but as for now, I wish I could achieve stable accounts with only email varification.

paying out for each account would be a bad way to scale,
I need every loop hole I can get my hands on. XD
 
Thanks, for the insight.

I just asumed that they would match the locations,
the ip address and the phone number.

Will try out if things fail.
but as for now, I wish I could achieve stable accounts with only email varification.

paying out for each account would be a bad way to scale,
I need every loop hole I can get my hands on. XD
I know nowadays I get asked for phone number within minutes on all my new accounts.
 
Account creation report

Created the 24 accounts,
the total test cases were not 32 accounts but 24,
cuz I cant do 3x2x2x2 math. XD

Also factor HEADLESS, and MANUAL cannot be done together.
So that is out of the test.

Anyways, these are the factors of the created accounts.

Suspected factor.
1. Create the accounts on a trusted email domain. (bing, google)
2. Change user-agents when created.
3. Create only 32 accounts in a separated timeframe to give less suspicion on traffic.
4. Do it manually.
5. Use the default browser chrome, no selenium attached.

Actual factor.
1. Created by outlook email accounts. (no phone)
2. Created accounts in a 15 minute timeframe.
3. Did manually.
4. Created by new profile in default chrome. (no --remote-debugging-port)
5. 3~4 follows. 2~3 likes. 1 comment. Watch 1 video.
6. 10 minutes of surfing.

Failed factor.
1. Change user-agents
I could not change the user-agent. It was done in default chrome.
I could use a chrome plugin? but did not go in the hassle of doing so.
so all accounts are created with a mac chrome user-agent.

Additional.
1. 4 additional accounts are created as Gogol mentioned and will be a separate test.
2. Bing seems to block me when using the same way to register accounts in a short amount of time period.
I noticed this when the traffic seems buggy.
They would not let you go in the register page with a infinate refresh.
When I tried it in firefox, it worked seeminglessly, so bing seems to block by traffic and useragent.
Am not sure if they block me by a chrome browser leaking someting local? could be.
If you are curious, you can have 2 identical machines and test that out by spamming in the first machine, and testing the second one.

All the accounts created yesterday seems to work fine today when I did a follow, like, or any action.
So that is a bit of good news.
 
Last edited:
Following very closely as I am doing something similar
 
Test Report 1


So, before we dive in,
I would like to address some things,

I have changed 'send_keys' as Mariusaf mentioned.

Also there were some abnormal behaviours that was inspected.
I would like to address and define them before we go in to the results.

Sorry, if the images are in Korean, but bear with me,
You will have to trust my claims on what it says.


Unusual events


1. UNEXPECTED_REGISTER_SIGNS



This event shows the text
'Unusual attempts are shown to log into your account'
and asks for your phone number or account username.

if this event happened on a NON_HEADLESS test case,
I have manually paused the program and typed in the username.


2. CONNECTION_ERROR


This event shows the text
'A problem has ocurred, No worries, this is not your fault'

Now this might be a actual connection error from twitter,
but it would be safe to assign it, if this occurs again,
I would assume that twitter is blocking.


3. BROWSER_BLOCKED


This event is very interesting.
But we will talk about that later.


4. SLOW

When the test case was
{DEFAULT_CHROMEDRIVER}_{AUTOMATION}_{PROFILED}_{NON_HEADLESS},
I could see the slow response of twitter with my own eyes.
I have set the interval per actions 10 seconds in this case.
Actions that was taken with DEFAULT_CHROMEDRIVER was mostly slow.


5. SPIN


You know those spinners that spin when a page is loading?
It just won't stop spinning.
The GIF looks like it was temporary, but trust me, it was spinning all day long.


6. PASS

These test cases, I will pass.
REAL_CHROMEDRIVER is the actual browser that you normally use.
So, of course it does not go headless.

HEADLESS + MANUAL
REAL_CHROMEDRIVER + HEADLESS




TEST RESULTS

{UNDETECTED_CHROMEDRIVER}_{AUTOMATION}_{PROFILED}_{HEADLESS}
SUCCESS

{UNDETECTED_CHROMEDRIVER}_{AUTOMATION}_{PROFILED}_{NON_HEADLESS}
SUCCESS

{UNDETECTED_CHROMEDRIVER}_{AUTOMATION}_{NON_PROFILED}_{HEADLESS}
CONNECTION_ERROR

{UNDETECTED_CHROMEDRIVER}_{AUTOMATION}_{NON_PROFILED}_{NON_HEADLESS}
UNEXPECTED_REGISTER_SIGNS + SUCCESS

{UNDETECTED_CHROMEDRIVER}_{MANUAL}_{PROFILED}_{HEADLESS}
PASS

{UNDETECTED_CHROMEDRIVER}_{MANUAL}_{PROFILED}_{NON_HEADLESS}
SUCCESS

{UNDETECTED_CHROMEDRIVER}_{MANUAL}_{NON_PROFILED}_{HEADLESS}
PASS

{UNDETECTED_CHROMEDRIVER}_{MANUAL}_{NON_PROFILED}_{NON_HEADLESS}
SUCCESS

{REAL_CHROMEDRIVER}_{AUTOMATION}_{PROFILED}_{HEADLESS}
PASS

{REAL_CHROMEDRIVER}_{AUTOMATION}_{PROFILED}_{NON_HEADLESS}
SUCCESS

{REAL_CHROMEDRIVER}_{AUTOMATION}_{NON_PROFILED}_{HEADLESS}
PASS

{REAL_CHROMEDRIVER}_{AUTOMATION}_{NON_PROFILED}_{NON_HEADLESS}
SUCCESS

{REAL_CHROMEDRIVER}_{MANUAL}_{PROFILED}_{HEADLESS}
PASS

{REAL_CHROMEDRIVER}_{MANUAL}_{PROFILED}_{NON_HEADLESS}
SUCCESS

{REAL_CHROMEDRIVER}_{MANUAL}_{NON_PROFILED}_{HEADLESS}
PASS

{REAL_CHROMEDRIVER}_{MANUAL}_{NON_PROFILED}_{NON_HEADLESS}
UNEXPECTED_REGISTER_SIGNS + SUCCESS

{DEFAULT_CHROMEDRIVER}_{AUTOMATION}_{PROFILED}_{HEADLESS}
BROWSER_BLOCKED

{DEFAULT_CHROMEDRIVER}_{AUTOMATION}_{PROFILED}_{NON_HEADLESS}
SLOW + SUCCESS

{DEFAULT_CHROMEDRIVER}_{AUTOMATION}_{NON_PROFILED}_{HEADLESS}
BROWSER_BLOCKED

{DEFAULT_CHROMEDRIVER}_{AUTOMATION}_{NON_PROFILED}_{NON_HEADLESS}
SPIN

{DEFAULT_CHROMEDRIVER}_{MANUAL}_{PROFILED}_{HEADLESS}
PASS

{DEFAULT_CHROMEDRIVER}_{MANUAL}_{PROFILED}_{NON_HEADLESS}
SUCCESS

{DEFAULT_CHROMEDRIVER}_{MANUAL}_{NON_PROFILED}_{HEADLESS}
PASS

{DEFAULT_CHROMEDRIVER}_{MANUAL}_{NON_PROFILED}_{NON_HEADLESS}
SUCCESS


Thoughts

1. CONNECTION_ERROR
I would not assume anything on CONNECTION_ERROR,
It could be a twitter error.
Until this happens on the second test, I would assume nothing.


2. UNEXPECTED_REGISTER_SIGNS
This happened in both
{UNDETECTED_CHROMEDRIVER}_{AUTOMATION}_{NON_PROFILED}_{NON_HEADLESS}.
{REAL_CHROMEDRIVER}_{MANUAL}_{NON_PROFILED}_{NON_HEADLESS}.

In both cases, the driver was different,
The action was different.

Thought that this might be a NON_PROFILED issue,
but in some cases NON_PROFILED was a success.

So I have no clue on this one either.

I would not be too concerned with this,
we can bypass this the first time we log in and use a cookie to be logged in all the time.


3. DEFAULT_CHROMEDRIVER
This we had some drastic effects.

Especially DEFAULT_CHROMEDRIVER with HEADLESS resulting in BROWSER_BLOCKED.
You would not be able to log, because it blocks when going into twitter.com at the first place.
This also means that twitter has a way of knowing you are going headless,
since DEFAULT_CHROMEDRIVER + NON_HEADLESS is not blocked.
This is quite funny,
As if they were protecting new programers from getting their hopes down.

Also SLOW, SPIN effects are shown.
This might be a sign that twitter is saving your data to block you afterwards.
We will know as tests go on.



PS.
If you want to have gif image logs like you see in the above,
Install ImageMagick and add the code
after the setup function.

Python:
def create_gif():
    for case_dir in os.listdir(f'./log/{test_no}/'):
        if case_dir == '.DS_Store':
            continue

        is_log_gif_present = os.path.isfile(f'./log/{test_no}/{case_dir}/log.gif')
        is_log_img_present = os.path.isfile(f'./log/{test_no}/{case_dir}/0.png')

        if not is_log_gif_present and is_log_img_present:
            process = subprocess.Popen(
                args=[rf'convert -delay 10 -loop 0 $(ls -1 *.png | sort -n) -resize 512x512 log.gif'],
                cwd=f'./log/{test_no}/{case_dir}/',
                shell=True
            )
            process.wait()


This did take me like a whole day to test,
manually change the ip,
manually register all the accounts,
remove all cookies, caches, ect when in case REAL_CHROMEDRIVER,
and the funcaptcha, the godddammm funcapcha.
Also, how do people post stuff with quality, this shit is hard.
Anyways wanted to blow off some steam off.

Next time, I will not post GIF if successful.
I will only post failures, as we can learn the most from.
 
Last edited:
@dohyung97022 what is your goal with this?

to understand twitter account creation or to make your own twitter browser based automation tool?

I see you have a nice understanding of coding and general automation, nice to see.
 
@dohyung97022 what is your goal with this?

to understand twitter account creation or to make your own twitter browser based automation tool?

I see you have a nice understanding of coding and general automation, nice to see.
Both.

Funcaptcha can not be solved by a machine, so it would be semi automated.

I have tried automating instagram before and failed, so I got a job at a tech company.
That improved me a LOT.

So this is my second try.
 
Last edited:
Both.

Funcaptcha can not be solved by a machine, so it would be semi automated.

I have tried automating instagram before and failed, so I got a job at a tech.
That improved me a LOT.

So this is my second try.
funcaptchas can be solved by making it work with API buying it from some of the captcha solving websites (that is how some other automation tools solve it)

because as you said it cant be automated.
 
funcaptchas can be solved by making it work with API buying it from some of the captcha solving websites (that is how some other automation tools solve it)

because as you said it cant be automated.
Whoa... you had success with that?
I tried 2captcha, but funcaptcha ingnored and gave me another task.

I thought this might be an ip problem, cuz the solver solved it in a different nation ip.
 
Whoa... you had success with that?
I tried 2captcha, but funcaptcha ingnored and gave me another task.

I thought this might be an ip problem, cuz the solver solved it in a different nation ip.
that is true,
I remember Martin from twitterdub recently said that he also had problems with captchas but before that, it worked with 2captcha.

wonder if it is solved now.

also did you phone verify and / or email verify your accounts? that should make your accounts a lot safer from captchas in the first place, at least in theory :)
 
Wish it was solved, that would make my life much easier.


The above test accounts are only email verified.

Great to be helpful,
I will keep sharing insights too when possible.
do you plan on doing limit testing?
how much actions did you do on those accounts in the past 24h, wonder if browser based automation allows for more actions than http requests automation.
 
do you plan on doing limit testing?
You mean traffic? Or action?

If traffic,
Such automation can be detected when traffic is abnormal.
As lucy.sparks shares about text detection,
https://www.blackhatworld.com/seo/s...ive-income-on-autopilot.1331710/post-15923692
Services detect us by action even if we get past all browsers, cookies, user-agents and all that junk.

Bing also detected me when I was creating these test accounts,
so is would be safe to assume twitter also has traffic detection.
24 accounts is too small to meet the cut.

But in order to test that, I would need to create a program that also randomize actions.
So, you will have to wait on that one XD.

If action,
I do not plan on doing a limit test.
I don't think spamming as much as you can in one account is safe in any service.
I want my accounts to be as safe as possible,
as I do not know a way to automate account creation,
accounts are a limited resource. (to me at least)

how much actions did you do on those accounts in the past 24h
As I mentioned in Account creation report, I have took

3~4 follows. 2~3 likes. 1 comment. Watch 1 video.
10 minutes of surfing.
Right after account creation.
 
Last edited:
Test Report 2

Have a couple of things to say about todays test.
Some abnormalities seems to appear in the same factors.

Lets get into what happened today.

Unusual events

1. CONNECTION_ERROR


This has a similar message as last time, but looks a bit different.


Last time on test report 1,
case {UNDETECTED_CHROMEDRIVER}_{AUTOMATION}_{NON_PROFILED}_{HEADLESS},
this happened.



Might seem like a different event.
But the message is the same, It has an error.
I think they are simmilar that twitter does not know what is happening or has a problem processing.

Curious thing is they both occurred in UNDETECTED_CHROMEDRIVER as a different test case.

I have reran the program after this error has occured,
and it was a SUCCESS.

We will discuss about this later after the test results.


2. YOU_SPIN_MY_HEAD_ROUND


Baby right round, when you go down when you go down down.


3. No more UNEXPECTED_REGISTER_SIGNS

As I have mentioned in the first test,
we are now using cookies, so no login page is in place.

This was to be expected,
Python:
# common
def save_cookies():
    global test_case, driver
    pickle.dump(driver.get_cookies(), open(f"./cookies/{test_case}_cookie.pkl", "wb"))


# common
def load_cookies():
    global profile, driver
    cookies = pickle.load(open(f"./cookies/{test_case}_cookie.pkl", "rb"))
    for cookie in cookies:
        driver.add_cookie(cookie)

If you are trying to implement this,
make sure you are in twitter.com before you use the load_cookies function.

Every domain keeps it's own cookies, and is kept private from other domains.

So if you
google.com -> load_cookies() -> twitter.com

You are loading twitter cookies in google, and opening no cookies in twitter.



TEST RESULTS

{UNDETECTED_CHROMEDRIVER}_{AUTOMATION}_{PROFILED}_{HEADLESS}
SUCCESS
SUCCESS

{UNDETECTED_CHROMEDRIVER}_{AUTOMATION}_{PROFILED}_{NON_HEADLESS}
SUCCESS
CONNECTION_ERROR + SUCCESS


{UNDETECTED_CHROMEDRIVER}_{AUTOMATION}_{NON_PROFILED}_{HEADLESS}
CONNECTION_ERROR
SUCCESS

{UNDETECTED_CHROMEDRIVER}_{AUTOMATION}_{NON_PROFILED}_{NON_HEADLESS}
UNEXPECTED_REGISTER_SIGNS + SUCCESS
SUCCESS

{UNDETECTED_CHROMEDRIVER}_{MANUAL}_{PROFILED}_{HEADLESS}
PASS

{UNDETECTED_CHROMEDRIVER}_{MANUAL}_{PROFILED}_{NON_HEADLESS}
SUCCESS
SUCCESS

{UNDETECTED_CHROMEDRIVER}_{MANUAL}_{NON_PROFILED}_{HEADLESS}
PASS

{UNDETECTED_CHROMEDRIVER}_{MANUAL}_{NON_PROFILED}_{NON_HEADLESS}
SUCCESS
SUCCESS

{REAL_CHROMEDRIVER}_{AUTOMATION}_{PROFILED}_{HEADLESS}
PASS

{REAL_CHROMEDRIVER}_{AUTOMATION}_{PROFILED}_{NON_HEADLESS}
SUCCESS
SUCCESS

{REAL_CHROMEDRIVER}_{AUTOMATION}_{NON_PROFILED}_{HEADLESS}
PASS

{REAL_CHROMEDRIVER}_{AUTOMATION}_{NON_PROFILED}_{NON_HEADLESS}
SUCCESS
SUCCESS

{REAL_CHROMEDRIVER}_{MANUAL}_{PROFILED}_{HEADLESS}
PASS

{REAL_CHROMEDRIVER}_{MANUAL}_{PROFILED}_{NON_HEADLESS}
SUCCESS
SUCCESS

{REAL_CHROMEDRIVER}_{MANUAL}_{NON_PROFILED}_{HEADLESS}
PASS

{REAL_CHROMEDRIVER}_{MANUAL}_{NON_PROFILED}_{NON_HEADLESS}
UNEXPECTED_REGISTER_SIGNS + SUCCESS
SUCCESS

{DEFAULT_CHROMEDRIVER}_{AUTOMATION}_{PROFILED}_{HEADLESS}
BROWSER_BLOCKED
BROWSER_BLOCKED



{DEFAULT_CHROMEDRIVER}_{AUTOMATION}_{PROFILED}_{NON_HEADLESS}
SLOW + SUCCESS
SLOW + SUCCESS

{DEFAULT_CHROMEDRIVER}_{AUTOMATION}_{NON_PROFILED}_{HEADLESS}
BROWSER_BLOCKED
BROWSER_BLOCKED


{DEFAULT_CHROMEDRIVER}_{AUTOMATION}_{NON_PROFILED}_{NON_HEADLESS}
SPIN
SLOW + SUCCESS

{DEFAULT_CHROMEDRIVER}_{MANUAL}_{PROFILED}_{HEADLESS}
PASS

{DEFAULT_CHROMEDRIVER}_{MANUAL}_{PROFILED}_{NON_HEADLESS}
SUCCESS
SPIN


{DEFAULT_CHROMEDRIVER}_{MANUAL}_{NON_PROFILED}_{HEADLESS}
PASS

{DEFAULT_CHROMEDRIVER}_{MANUAL}_{NON_PROFILED}_{NON_HEADLESS}
SUCCESS
SUCCESS



Thoughts

1. CONNECTION_ERROR


In the first test, I told you guys to assume nothing as we have no data,
But today this happened again.

So the two cases are

test 1 :{UNDETECTED_CHROMEDRIVER}_{AUTOMATION}_{NON_PROFILED}_{HEADLESS}
CONNECTION_ERROR
test 2 : {UNDETECTED_CHROMEDRIVER}_{AUTOMATION}_{PROFILED}_{NON_HEADLESS}

Both cases has happened on UNDETECTED_CHROMEDRIVER, AUTOMATION,
so headless or not, profiled or not does not matter.
Automation also does not matter, because this event happens when first accessing twitter.com.

"when first accessing twitter.com" is the key here.
But why does the first access matter?

You guys may be aware of https://nowsecure.nl and a lot of websites that has anti bot detection.
Even BHW has this kind of security appied.


스크린샷 2022-12-25 오후 4.58.15.png


This checks your browser useragent, js functions, ipaddress, language, plugins, additional installs on chrome and all they can get their hands on.

Sites like BHW would be
https://nowsecure.nl -> BHW.com

But gigantic tech companies are rich and hire Einsteins, so
twitter security team code -> twitter.com

AWS cloud services also has these security mesures in cloudfront.
They usualy check for similar ip addresses, or abnormal traffic.
That is what protects websites from a ddos attack.

Am I saying that twitter detected UNDETECTED_CHROMEDRIVER?

No.

The result is a CONNECTION_ERROR, and this does not always happen as the retry was a SUCCESS.
So I think they cannot process the abnormal settings in the browser,
Something is not adding up with the twitter security team code, or they did not test this case.

Sould we be aware of this behavior?

Yes.

The fact that it is a CONNECTION_ERROR means that they have the potential to detect this in the first place.


But hey, thats just a theory
I may be a bit paranoid, because this is only day 2.
Only when if this behavour adds up on UNDETECTED_CHROMEDRIVER, then we can be 100% sure.


2. SPIN

I could not show you last time, but this time if you see the gif, you can see it spin.

This event happened again on DEFAULT_CHROMEDRIVER,
as it happened on Test Report 1, so twitter is definitely detecting the DEFAULT_CHROMEDRIVER.
Just using the chrome driver is definately a no go.

But I was wondering,
Why would they not just block the account in the first place.

Check this account.
https://twitter.com/20blackhatworld
Test Case
{DEFAULT_CHROMEDRIVER}_{AUTOMATION}_{NON_PROFILED}_{NON_HEADLESS}

The follow actions did take place and was a success.

When I have followed automaticaly in instagram before, They tricked me when the follow action was done.
I could visibly see the UI change when following, but the follow action was not done when checking the accounts.

If you plan on spamming, the default chromebrowser might still be viable on twitter,
As the actions are not blocked, or the accounts are not blocked.

Maybe the twitter security team is blocking bots by slowing down their traffic.
Or block being accepted into twitter apis or requests as the SPIN is ocurred.
They could have a score system and assign this account as not important traffic.

PS.
Not a lot to say about todays tests,
A lot of cases mostly was a success.
Failed cases mostly failed again.
Nothing was that unusual.

I can safely say, you do not need antibrowsers to automate 30 accounts.
I cannot say that they do not work, or is useless as I have not done a traffic test for like 1000 accounts.
But I can say that I do not like them.

The more we become dependent on tools, the more weak we become.
Think about jarvee as they shut down.
If your whole business is dependent on jarvee traffic, that would be a disaster.

Anyways, this is just my belief speaking,
using tools might be faster and more efficient for you as I do not know your situation,
But If you do take the painful long route, I admire you.

See you tomorrow.

Oh, I might have to crank up the follow amounts,
this does not seem to alert the twitter cops.
As I said, If they fail, we learn more.
 
Last edited:
I am sure the following thing will raise your interest level :D

1. https://twitter.com/mehrankk9
one month old account, 3.5k following, 4.5k tweets / retweets

2. https://twitter.com/komiisi
10 month old account, 2,3k following, 135k retweets

3. https://twitter.com/callaszra
10 month old account, 2.3k following, 37k retweets

4. https://twitter.com/icecublue
1 year old account, 4k following, 40k retweets

by looking at these examples it is easy to understand that some accounts are able to do whatever they wont and still not get banned,
while others cant.

people talk about twitter limits for retweets and likes, yet these accounts have 110+ retweets on AVERAGE PER DAY for a full year without getting banned.

so whenever someone talks about twitter "spam" limits, I am not sure where are they getting that information, since these accounts would be considered "heavy spam accounts"
and they are still doing the same actions :)

ps. here a new example, 5 days old account

https://twitter.com/15luckymebeef15
started doing retweets and likes 5 days ago,
doing 200+ retweets and likes per day!
 
started doing retweets and likes 5 days ago,
doing 200+ retweets and likes per day!

What was your experience when you automated? How much retweets and or follows resulted in a ban?

Does your automation tool use the webs requests? Or the apps http requests?

Did you try 200+ retweets in the app?
Does manual retweet make you get banned?

I have not done a retweet limit test,
This is my first test on twitter XD
I look like an expert, but I am not.

However, if manual app retweets does not ban you in twitter,
It is possible.
 
Last edited:
Back
Top