Closed demalem closed 3 years ago
Issue-Label Bot is automatically applying the label bug
to this issue, with a confidence of 0.94. Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback!
Links: app homepage, dashboard and code for this bot.
Hey @demalem,
We did a quick check and this issue looks very darn similar to
This could be a coincidence, but if any of these issues solves your problem then I did a good job :smile:
If not, the maintainers will get to this issue shortly.
Cheers, Your Friendly Neighborhood ProBot
What happens when you type the following command into your terminal
chromedriver
'chromedriver' is not recognized as an internal or external command, operable program or batch file.
However, I downloaded chromedriver and included in the path where the script is located. Both in C:\Users\emela.spyder-py3
moved chromerdriver to the parent folder where Anaconda is downloaded and got this result now:
Starting ChromeDriver 85.0.4183.83 (94abc2237ae0c9a4cb5f035431c8adfb94324633-refs/branch-heads/4183@{#1658}) on port 9515 Only local connections are allowed. Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. [1598556547.109][SEVERE]: bind() returned an error: Only one usage of each socket address (protocol/network address/port) is normally permitted. (0x2740) IPv6 port not available. Exiting...
You should be including the script in the system path not the script path not a specific directory
Same error, I put chromedriver in C:\Users\emela and pointed all my scripts their as well.
Here's an article on how to add to system path
Great thanks, I added it to the PATH variable. Here is a screenshot:
Restarted kernel, and same error. I also tried running code from the Chromedriver homepage: https://sites.google.com/a/chromium.org/chromedriver/getting-started and ran into issues as well. I'm assuming I'm not correctly including chromedriver in the PATH or pointing to it accurately.
I have tried all of these resolutions and nothing seems to work. I am not in a country in which TikTok is banned. I have also tried running it with debug mode enabled api = TikTokApi(debug=True)
however the issue still occurs. After printing 20 users stats, it gives me the error. It seems as though it gets stuck.
It should print the stats of the last 10 videos for each user that is over 1 million followers, and it does so. However, I get an error after it has printed 20 user's stats.
The error:
Traceback (most recent call last):
File "snowball.py", line 24, in <module>
tiktok = api.getUser(accounts)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/TikTokApi/tiktok.py", line 723, in getUser
return self.getData(b, proxy=proxy)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/TikTokApi/tiktok.py", line 71, in getData
query = {'verifyFp': b.verifyFp, 'did': b.did, '_signature': b.signature}
AttributeError: 'browser' object has no attribute 'verifyFp'
my code script (snowball.py)
from TikTokApi import TikTokApi
api = TikTokApi()
# file_data is the list of 150 tiktok users accounts)
for accounts in file_data:
tiktok = api.getUser(accounts)
name = (tiktok['userInfo']['user']['uniqueId'])
followers = (tiktok['userInfo']['stats']['followerCount'])
if followers > 1000000:
user_videos = api.byUsername(name, count=10)
for video in user_videos:
stats = (video['stats'])
print(stats, name)
Also, if it helps, when I type in chromedriver
into my macOS terminal... I get this:
Starting ChromeDriver X.X.X.X () on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
My internet connection is rather fast as well.
@edenhikri does #246 solve your issue?
No, unfortunately it does not.
I have tried adding in 'dumpio': True
to the launch options. However, the issue still persists.
This may help you as I have seen you request this on other similar issues. When I run:
from pyppeteer.launcher import Launcher
print(' '.join(Launcher().cmd))
I get this:
/Users/edenhikri/Library/Application Support/pyppeteer/local-chromium/588429/chrome-mac/Chromium.app/Contents/MacOS/Chromium --disable-background-networking --disable-background-timer-throttling --disable-breakpad --disable-browser-side-navigation --disable-client-side-phishing-detection --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=site-per-process --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --disable-translate --metrics-recording-only --no-first-run --safebrowsing-disable-auto-update --enable-automation --password-store=basic --use-mock-keychain --headless --hide-scrollbars --mute-audio about:blank --remote-debugging-port=51908 --user-data-dir=/Users/edenhikri/Library/Application Support/pyppeteer/.dev_profile/tmpi4lv6pb2
seems like you have too many request and then get blocked by tiktok server. have you try using proxy?
I am not sure if this is the issue... sometimes it works and does all the accounts, sometimes it gets stuck on the error... @fastandslow007
First, try to debug:
..
TikTokApi(debug=True)
..
Then enable dumpio on launch:
<yourenv>/lib/python3.6/site-packages/pyppeteer/launcher.py:
..
81 self.dumpio = options.get('dumpio', True)
..
Run your script and notice the error. In my case, I got this error:
...
Class initialized
<xx>/local-chromium/588429/chrome-linux/chrome: error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory
The following error occurred, but it was ignored.
'browser' object has no attribute 'timezone_name'
<xx>/.local/share/pyppeteer/local-chromium/588429/chrome-linux/chrome: error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory
...
[ERROR] ERROR-2 'browser' object has no attribute 'verifyFp'
...
Try to fix missing libXss.so.1 by installing this (I use Ubuntu):
$ apt-get install libxss1
Then the problem is fixed.
Thanks.
I have tried this...
I first enabled debug mode
api = TikTokApi(debug=True)
then I went into /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pyppeteer/launcher.py and changed line 81:
self.dumpio = options.get('dumpio', True)
then I ran snowball.py (my script)
It ran everything properly until it got stuck and brought up the same error:
...
DevTools listening on ws://127.0.0.1:53029/devtools/browser/28433110-68c9-4304-875e-5494698a533d
[0916/130613.905933:INFO:CONSOLE(1)] "%c", source: (1)
Traceback (most recent call last):
File "snowball.py", line 22, in <module>
tiktok = api.getUser(accounts, proxy=None)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/TikTokApi/tiktok.py", line 723, in getUser
return self.getData(b, proxy=proxy)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/TikTokApi/tiktok.py", line 71, in getData
query = {'verifyFp': b.verifyFp, 'did': b.did, '_signature': b.signature}
AttributeError: 'browser' object has no attribute 'verifyFp'
Is it okay if you share the full log from the start?
This is what happens when I run snowball.py (python3 snowball.py) with debug mode set to True and dumpio enabled on launch:
(as it is lengthy I have put it in this link for you to view)
https://pastr.io/view/tuOfEKsXxly
I'm really not sure what the issue could be...
I discovered the issue may have been with google-api-core interfering with requests.
I simple fixed it by:
pip3 uninstall requests
then:
pip3 uninstall google-api-core
finally:
pip3 install requests
Unfortunately, this did not actually fix the issue. It seemed to only have fixed the issue for a few hours... I am really not sure what is causing this issue. Can you please help me out @davidteather
I’ve got no clue what your issue is. You could try to make a VM for a fresh start. The .travis.yml file has specific setup commands
Those instructions are linux specific... are you able to provide Mac instructions? @davidteather
I am really unsure what the issue may be... I have tried installing a new virtual environment, running it with debug mode set to True and dumpio enabled on launch. Nothing seems to work. I would love to use this program however it does not work for me
@edenhikri might be an issue with your actual IP address might be blocked by TikTok. When I used heroku it didn't like how they had their IPs setup. When I had a dedicated IP on a AWS ec2 instance it worked. You might want to try making the requests over a proxy (most publically available free ones probably wont work)
@davidteather So I tried using a private proxy that I bought. It is based in United States and I ran the script in debug mode in a virtual environment with the proxy and I still got the same error: (I even tried running with dumpio set to True on launch and got the same error)
File "pinpoint.py", line 164, in pullandsort
description()
File "pinpoint.py", line 80, in description
tiktok = api.getUser(name, proxy=myproxy)
File "/Users/edenhikri/Desktop/ANYMERCH/programming/pinpoint/venv/lib/python3.8/site-packages/TikTokApi/tiktok.py", line 723, in getUser
return self.getData(b, proxy=proxy)
File "/Users/edenhikri/Desktop/ANYMERCH/programming/pinpoint/venv/lib/python3.8/site-packages/TikTokApi/tiktok.py", line 71, in getData
query = {'verifyFp': b.verifyFp, 'did': b.did, '_signature': b.signature}
AttributeError: 'browser' object has no attribute 'verifyFp'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "pinpoint.py", line 231, in <module>
startup()
File "pinpoint.py", line 227, in startup
locate()
File "pinpoint.py", line 49, in locate
sort()
File "pinpoint.py", line 71, in sort
pullandsort()
File "pinpoint.py", line 167, in pullandsort
description()
File "pinpoint.py", line 80, in description
tiktok = api.getUser(name, proxy=myproxy)
File "/Users/edenhikri/Desktop/ANYMERCH/programming/pinpoint/venv/lib/python3.8/site-packages/TikTokApi/tiktok.py", line 723, in getUser
return self.getData(b, proxy=proxy)
File "/Users/edenhikri/Desktop/ANYMERCH/programming/pinpoint/venv/lib/python3.8/site-packages/TikTokApi/tiktok.py", line 71, in getData
query = {'verifyFp': b.verifyFp, 'did': b.did, '_signature': b.signature}
AttributeError: 'browser' object has no attribute 'verifyFp'
Is there anything else I can try? @davidteather
Hi,
Sorry to jump in again.
“ OSError: [Errno 24] Too many open files”
Have you try to increase open files via sysctl.conf or limits.conf or ulimit?
On Mon, 21 Sep 2020 at 06.55 edenhikri notifications@github.com wrote:
Is there anything else I can try? @davidteather https://github.com/davidteather
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/davidteather/TikTok-Api/issues/237#issuecomment-695853072, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALMYDB6P5YKCBNV7SAT6YW3SG2I6LANCNFSM4QK74G2A .
might depend on your osx version as well. but lauchd and ulimit should do.
I found by simply googling: "macos too many open files". https://superuser.com/questions/830149/os-x-yosemite-too-many-files-open https://medium.com/mindful-technology/too-many-open-files-limit-ulimit-on-mac-os-x-add0f1bfddde
On Tue, Sep 22, 2020 at 8:30 AM edenhikri notifications@github.com wrote:
@fastandslow007 https://github.com/fastandslow007 I am on a Mac... where are these files located?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/davidteather/TikTok-Api/issues/237#issuecomment-696465137, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALMYDBZKNSNE5IGHZRF7GQDSG742LANCNFSM4QK74G2A .
If this is still an issue for you, I had the same problem. I added the following and it resolved the issue with set_async:
from TikTokApi.browser import set_async set_async()
Good luck, and let me know!
same issue here.
virtualenv -p python3.8 tiktok_api_test
cd tiktok_api_test
source bin/activate
pip install TikTokApi
I dump the example code into test.py
python test.py
here is what i get
[W:pyppeteer.chromium_downloader] start chromium download. Download may take a few minutes. [W:pyppeteer.chromium_downloader] start chromium download. Download may take a few minutes. Traceback (most recent call last): File "test.py", line 7, in <module> trending = api.trending(count=results) File "/private/tmp/tiktok_api_test/lib/python3.8/site-packages/TikTokApi/tiktok.py", line 154, in trending res = self.getData(b, proxy=proxy) File "/private/tmp/tiktok_api_test/lib/python3.8/site-packages/TikTokApi/tiktok.py", line 72, in getData query = {'verifyFp': b.verifyFp, 'did': b.did, '_signature': b.signature} AttributeError: 'browser' object has no attribute 'verifyFp'
running chromedriver
in the terminal outputs this
Starting ChromeDriver 85.0.4183.87 (cd6713ebf92fa1cacc0f1a598df280093af0c5d7-refs/branch-heads/4183@{#1689}) on port 9515 Only local connections are allowed. Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. ChromeDriver was started successfully.
If this is still an issue for you, I had the same problem. I added the following and it resolved the issue with set_async:
from TikTokApi.browser import set_async set_async()
Good luck, and let me know!
I had the same problem and this solved it. Thanks!
i encountered the same issue.
simply running pyppeteer-install
was the solution for me.
If this is still an issue for you, I had the same problem. I added the following and it resolved the issue with set_async: from TikTokApi.browser import set_async set_async() Good luck, and let me know!
I had the same problem and this solved it. Thanks!
Same issue and solved by this!
If this is still an issue for you, I had the same problem. I added the following and it resolved the issue with set_async:
from TikTokApi.browser import set_async set_async()
Good luck, and let me know!
I have the same issue with "verifyFp" but after adding set_async() I just have anorher error:
Error in atexit._run_exitfuncs: Traceback (most recent call last): File "/usr/lib/python3.6/asyncio/base_events.py", line 454, in run_until_complete self.run_forever() File "/usr/lib/python3.6/asyncio/base_events.py", line 408, in run_forever raise RuntimeError('This event loop is already running') RuntimeError: This event loop is already running
If this is still an issue for you, I had the same problem. I added the following and it resolved the issue with set_async: from TikTokApi.browser import set_async set_async() Good luck, and let me know!
I have the same issue with "verifyFp" but after adding set_async() I just have anorher error:
Error in atexit._run_exitfuncs: Traceback (most recent call last): File "/usr/lib/python3.6/asyncio/base_events.py", line 454, in run_until_complete self.run_forever() File "/usr/lib/python3.6/asyncio/base_events.py", line 408, in run_forever raise RuntimeError('This event loop is already running') RuntimeError: This event loop is already running
Same error here
I had the same issue after deploying it to my raspberry pi, whereas it is working perfectly in windows. Looks like the issue is with the pyppeteer browser. Did not investigate it completely, but the below fixed the issue.
Fix
pass the below argument while creating TikTokApi() object executablePath = '/usr/bin/chromium-browser'
Command to find the path - "whereis chromium-browser"
Alternative: Or directly hardcode the browser path in site-packages/TikTokApi/browser.py (wouldn't recommend, but can give a try if the 1st doesn't work) self.executablePath = '/usr/bin/chromium-browser'
Hopefully, this works in Linux as well.
I've tried all of your recommendations, but the problem remained unresolved Here's the code with all libraries: `from TikTokApi import TikTokApi from TikTokApi.browser import set_async set_async() api = TikTokApi()
results = 10
trending = api.trending(count=results)
for tiktok in trending:
print(tiktok['desc'])
print(len(trending)) And here's some errors:
[W:pyppeteer.chromium_downloader] start chromium download.
Download may take a few minutes.
Traceback (most recent call last):
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)
During handling of the above exception, another exception occurred: ` How can I solve it on MacOS?
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] The issue you are facing seem to be different than the one discussed in this thread. See this for possible solution for ssl issue.
Since I've migrated the API to playwright information here may be outdated for TikTokApi >= 3.7.0 if anyone has the same issues on 3.7.0 or greater please open a new issue.
What happens when you type the following command into your terminal
chromedriver
I was getting an error that TikTokApi didn't have an attribute (width). When I saw your post, it enlighted me. I didn't know I should had started chromedriver x)! Thanks, mate.
When running the example code from the README:
from TikTokApi import TikTokApi api = TikTokApi()
results = 10
trending = api.trending(count=results)
for tiktok in trending:
Prints the text of the tiktok
print(len(trending))
I recieve the below error:
AttributeError: 'browser' object has no attribute 'verifyFp'
I installed chromedriver, but may not have added it to the right path. Can you give guidance in this regards?