TikTok-Api icon indicating copy to clipboard operation
TikTok-Api copied to clipboard

AttributeError: 'TikTokApi' object has no attribute '_region'

Open roelvanderburg opened this issue 2 years ago • 5 comments

Calling the TikTok API gives a AttributeError: 'TikTokApi' object has no attribute '_region' bug.

from TikTokApi import TikTokApi

api = TikTokApi()

for trending_video in api.trending.videos(count=5):
    # Prints the author's username of the trending video.
    print(trending_video.author.username)```

AttributeError                            Traceback (most recent call last)
/home/gipsy-john/PycharmProjects/TikTok-Api/TikTokApi/test.ipynb Cell 1' in <module>
      [3](vscode-notebook-cell:/home/gipsy-john/PycharmProjects/TikTok-Api/TikTokApi/test.ipynb#ch0000001?line=2)[ # In your web browser you will need to go to TikTok, check the cookies 
      ]()[4](vscode-notebook-cell:/home/gipsy-john/PycharmProjects/TikTok-Api/TikTokApi/test.ipynb#ch0000001?line=3)[ # and under www.tiktok.com s_v_web_id should exist, and use that value
      ]()[5](vscode-notebook-cell:/home/gipsy-john/PycharmProjects/TikTok-Api/TikTokApi/test.ipynb#ch0000001?line=4)[ # as input to custom_verify_fp
      ]()[6](vscode-notebook-cell:/home/gipsy-john/PycharmProjects/TikTok-Api/TikTokApi/test.ipynb#ch0000001?line=5)[ # Or watch https://www.youtube.com/watch?v=-uCt1x8kINQ for a visual
      ]()[7](vscode-notebook-cell:/home/gipsy-john/PycharmProjects/TikTok-Api/TikTokApi/test.ipynb#ch0000001?line=6)[ 
      ]()[8](vscode-notebook-cell:/home/gipsy-john/PycharmProjects/TikTok-Api/TikTokApi/test.ipynb#ch0000001?line=7)[ # custom_verify_fp = 
     ]()[10](vscode-notebook-cell:/home/gipsy-john/PycharmProjects/TikTok-Api/TikTokApi/test.ipynb#ch0000001?line=9)[ api = TikTokApi()
---> ]()[12](vscode-notebook-cell:/home/gipsy-john/PycharmProjects/TikTok-Api/TikTokApi/test.ipynb#ch0000001?line=11)[ for trending_video in api.trending.videos(count=5):
     ]()[13](vscode-notebook-cell:/home/gipsy-john/PycharmProjects/TikTok-Api/TikTokApi/test.ipynb#ch0000001?line=12)[     # Prints the author's username of the trending video.
     ]()[14](vscode-notebook-cell:/home/gipsy-john/PycharmProjects/TikTok-Api/TikTokApi/test.ipynb#ch0000001?line=13)[     print(trending_video.author.username)

File ~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/api/trending.py:57, in Trending.videos(count, **kwargs)
     ]()[45](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/api/trending.py?line=44)[ while amount_yielded < count:
     ]()[46](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/api/trending.py?line=45)[     query = {
     ]()[47](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/api/trending.py?line=46)[         "count": 30,
     ]()[48](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/api/trending.py?line=47)[         "id": 1,
   (...)
     ]()[54](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/api/trending.py?line=53)[         "language": processed.language,
     ]()[55](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/api/trending.py?line=54)[     }
     ]()[56](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/api/trending.py?line=55)[     path = "api/recommend/item_list/?{}&{}".format(
---> ]()[57](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/api/trending.py?line=56)[         Trending.parent._add_url_params(), urlencode(query)
     ]()[58](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/api/trending.py?line=57)[     )
     ]()[59](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/api/trending.py?line=58)[     res = Trending.parent.get_data(path, ttwid=ttwid, **kwargs)
     ]()[60](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/api/trending.py?line=59)[     for result in res.get("itemList", []):

File ~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py:545, in TikTokApi._add_url_params(self)
    ]()[540](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=539)[ def _add_url_params(self) -> str:
    ]()[541](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=540)[     query = {
    ]()[542](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=541)[         "aid": 1988,
    ]()[543](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=542)[         "app_name": "tiktok_web",
    ]()[544](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=543)[         "device_platform": "web_mobile",
--> ]()[545](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=544)[         "region": self._region or "US",
    ]()[546](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=545)[         "priority_region": "",
    ]()[547](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=546)[         "os": "ios",
    ]()[548](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=547)[         "referer": "",
    ]()[549](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=548)[         "cookie_enabled": "true",
    ]()[550](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=549)[         "screen_width": self._width,
    ]()[551](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=550)[         "screen_height": self._height,
    ]()[552](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=551)[         "browser_language": self._browser_language.lower() or "en-us",
    ]()[553](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=552)[         "browser_platform": "iPhone",
    ]()[554](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=553)[         "browser_name": "Mozilla",
    ]()[555](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=554)[         "browser_version": self._user_agent,
    ]()[556](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=555)[         "browser_online": "true",
    ]()[557](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=556)[         "timezone_name": self._timezone_name or "America/Chicago",
    ]()[558](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=557)[         "is_page_visible": "true",
    ]()[559](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=558)[         "focus_state": "true",
    ]()[560](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=559)[         "is_fullscreen": "false",
    ]()[561](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=560)[         "history_len": random.randint(0, 30),
    ]()[562](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=561)[         "language": self._language or "en",
    ]()[563](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=562)[     }
    ]()[565](file:///~/miniconda3/envs/vid/lib/python3.9/site-packages/TikTokApi/tiktok.py?line=564)[     return urlencode(query)

AttributeError: 'TikTokApi' object has no attribute '_region']()```

Additional context

Python 3.9.10 Ubuntu 20.04.3 LTS TikTok API: 5.0.0

roelvanderburg avatar Mar 06 '22 14:03 roelvanderburg

I'm getting this error too!

api = TikTokApi()
print(api._region)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Input In [68], in <module>
      1 # In your web browser you will need to go to TikTok, check the cookies 
      2 # and under [www.tiktok.com](https://www.tiktok.com/) s_v_web_id should exist, and use that value
      3 # as input to custom_verify_fp
      4 # Or watch https://www.youtube.com/watch?v=-uCt1x8kINQ for a visual
      5 
      6 # api = TikTokApi.get_instance(custom_verify_fp=cookie)
      7 api = TikTokApi()
----> 8 print(api._region)

AttributeError: 'TikTokApi' object has no attribute '_region'

s_v_web_id was missing from my cookies list so I didn't add a custom verify fp, but I don't know if that's the issue? This AttributeError then seems to come up when I try to call other methods...

TikTokApi: 5.0.0
python: 3.9.6
macOS: 12.2 Monterey

gabeschoenbach avatar Mar 07 '22 04:03 gabeschoenbach

I am getting a similar issue even after filling the custom_verify_fp field on V5.0.0 all previous issues were closed right away with a simple "upgrade to V5" so I have very little work with too.

I also found the s_v_web_id as a cookie from the developers.tiktok.com website and not tiktok.com itself which might explain this behavior on my end. Is there a workaround for when you don't have the cookie on your system?

similar error snippet:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
[<ipython-input-21-b52241b0ef0d>](https://localhost:8080/#) in <module>()
----> 1 for trending_video in api.trending.videos(count=50):
      2     print(trending_video.author.username)

1 frames
[/usr/local/lib/python3.7/dist-packages/TikTokApi/tiktok.py](https://localhost:8080/#) in _add_url_params(self)
    543             "app_name": "tiktok_web",
    544             "device_platform": "web_mobile",
--> 545             "region": self._region or "US",
    546             "priority_region": "",
    547             "os": "ios",

AttributeError: 'TikTokApi' object has no attribute '_region'

alexbghanem avatar Mar 07 '22 18:03 alexbghanem

+1 for this issue

baseliners avatar Mar 11 '22 08:03 baseliners

got same error

kirillkoncha avatar Mar 12 '22 11:03 kirillkoncha

Same error, nobody with a workaround?

RiccardoTOTI avatar Mar 16 '22 21:03 RiccardoTOTI

fixed in v6?

davidteather avatar Aug 08 '23 22:08 davidteather