tiktokautouploader 3.17__py2.py3-none-any.whl → 3.18__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tiktokautouploader/function.py +243 -175
- {tiktokautouploader-3.17.dist-info → tiktokautouploader-3.18.dist-info}/METADATA +11 -4
- tiktokautouploader-3.18.dist-info/RECORD +7 -0
- tiktokautouploader-3.17.dist-info/RECORD +0 -7
- {tiktokautouploader-3.17.dist-info → tiktokautouploader-3.18.dist-info}/WHEEL +0 -0
- {tiktokautouploader-3.17.dist-info → tiktokautouploader-3.18.dist-info}/licenses/LICENSE.md +0 -0
tiktokautouploader/function.py
CHANGED
@@ -242,6 +242,7 @@ def upload_tiktok(video, description, accountname, hashtags=None, sound_name=Non
|
|
242
242
|
------------------------------------------------------------------------------------------------------------------------------------------------c
|
243
243
|
video (str) -> path to video to upload
|
244
244
|
description (str) -> description for video
|
245
|
+
accountname (str) -> account to upload on
|
245
246
|
hashtags (str)(array) -> hashtags for video
|
246
247
|
sound_name (str) -> name of tik tok sound to use for video
|
247
248
|
sound_aud_vol (str) -> volume of tik tok sound, 'main', 'mix' or 'background', check documentation for more info -> https://github.com/haziq-exe/TikTokAutoUploader
|
@@ -471,13 +472,16 @@ def upload_tiktok(video, description, accountname, hashtags=None, sound_name=Non
|
|
471
472
|
print("Description and Hashtags added")
|
472
473
|
|
473
474
|
try:
|
474
|
-
page.
|
475
|
+
page.wait_for_selector('button.TUXButton.TUXButton--default.TUXButton--large.TUXButton--primary:has-text("Post")[aria-disabled="false"]', timeout=12000000)
|
475
476
|
except:
|
476
477
|
sys.exit("ERROR: TIK TOK TOOK TOO LONG TO UPLOAD YOUR FILE (>20min). Try again, if issue persists then try a lower file size or different wifi connection")
|
477
478
|
|
478
479
|
time.sleep(0.2)
|
479
480
|
if suppressprint == False:
|
480
481
|
print("Tik tok done loading file onto servers")
|
482
|
+
|
483
|
+
if (schedule == None) and (day != None):
|
484
|
+
sys.exit("ERROR: CANT SCHEDULE FOR ANOTHER DAY USING 'day' WITHOUT ALSO INCLUDING TIME OF UPLOAD WITH 'schedule'; PLEASE ALSO INCLUDE TIME WITH 'schedule' PARAMETER")
|
481
485
|
|
482
486
|
if schedule != None:
|
483
487
|
try:
|
@@ -521,194 +525,258 @@ def upload_tiktok(video, description, accountname, hashtags=None, sound_name=Non
|
|
521
525
|
|
522
526
|
except:
|
523
527
|
sys.exit("SCHEDULING ERROR: VIDEO SAVED AS DRAFT")
|
524
|
-
|
525
|
-
# if (schedule == None) and (day != None):
|
526
|
-
# sys.exit("ERROR: CANT SCHEDULE FOR ANOTHER DAY USING 'day' WITHOUT ALSO INCLUDING TIME OF UPLOAD WITH 'schedule'; PLEASE ALSO INCLUDE TIME WITH 'schedule' PARAMETER")
|
527
|
-
|
528
|
-
# if(sound_name == None):
|
529
|
-
# if copyrightcheck == True:
|
530
|
-
# page.locator(".TUXSwitch-input").nth(0).click()
|
531
|
-
# while copyrightcheck == True:
|
532
|
-
# time.sleep(0.2)
|
533
|
-
# if page.locator("span", has_text="No issues detected.").is_visible():
|
534
|
-
# if suppressprint == False:
|
535
|
-
# print("Copyright check complete")
|
536
|
-
# break
|
537
|
-
# if page.locator("span", has_text="Copyright issues detected.").is_visible():
|
538
|
-
# sys.exit("COPYRIGHT CHECK FAILED: COPYRIGHT AUDIO DETECTED FROM TIKTOK")
|
539
|
-
|
540
|
-
# if schedule == None:
|
541
|
-
# page.click('button.TUXButton.TUXButton--default.TUXButton--large.TUXButton--primary:has-text("Post")', timeout=10000)
|
542
|
-
# uploaded = False
|
543
|
-
# checks = 0
|
544
|
-
# while uploaded == False:
|
545
|
-
# if page.locator(':has-text("Leaving the page does not interrupt")').nth(0).is_visible():
|
546
|
-
# time.sleep(0.2)
|
547
|
-
# break
|
548
|
-
# time.sleep(0.2)
|
549
|
-
# checks += 1
|
550
|
-
# if checks > 100:
|
551
|
-
# time.sleep(10)
|
552
|
-
# if checks == 150:
|
553
|
-
# break
|
554
|
-
# else:
|
555
|
-
# page.click('button.TUXButton.TUXButton--default.TUXButton--large.TUXButton--primary:has-text("Schedule")', timeout=10000)
|
556
|
-
# uploaded = False
|
557
|
-
# checks = 0
|
558
|
-
# while uploaded == False:
|
559
|
-
# if page.locator(':has-text("Leaving the page does not interrupt")').nth(0).is_visible():
|
560
|
-
# time.sleep(0.2)
|
561
|
-
# break
|
562
|
-
# time.sleep(0.2)
|
563
|
-
# checks += 1
|
564
|
-
# if checks > 100:
|
565
|
-
# time.sleep(10)
|
566
|
-
# if checks == 150:
|
567
|
-
# break
|
568
|
-
# if suppressprint == False:
|
569
|
-
# print("Done uploading video, NOTE: it may take a minute or two to show on TikTok")
|
570
|
-
|
571
|
-
# page.close()
|
572
|
-
|
573
|
-
# else:
|
574
|
-
# try:
|
575
|
-
# page.click('button.TUXButton.TUXButton--default.TUXButton--large.TUXButton--secondary:has-text("Save draft")', timeout=10000)
|
576
|
-
# except:
|
577
|
-
# sys.exit("SAVE AS DRAFT BUTTON NOT FOUND; CANNOT ADD SOUND WITHOUT ABILITY TO SAVE DRAFTS")
|
578
|
-
|
579
|
-
# time.sleep(0.5)
|
580
|
-
# page.close()
|
581
|
-
|
582
|
-
# browser = p.chromium.launch(headless=False)
|
583
|
-
|
584
|
-
# context = browser.new_context()
|
585
|
-
# context.add_cookies(cookies)
|
586
|
-
# page = context.new_page()
|
587
|
-
# url2 = 'https://www.tiktok.com/tiktokstudio/content?tab=draft'
|
588
|
-
|
589
|
-
# while retries < 2:
|
590
|
-
# try:
|
591
|
-
# page.goto(url2, timeout=30000)
|
592
|
-
# except:
|
593
|
-
# retries +=1
|
594
|
-
# time.sleep(5)
|
595
|
-
# if retries == 2:
|
596
|
-
# sys.exit("ERROR: TIK TOK PAGE FAILED TO LOAD, try again.")
|
597
|
-
# else:
|
598
|
-
# break
|
599
|
-
|
600
|
-
# try:
|
601
|
-
# page.wait_for_selector("path[d='M37.37 4.85a4.01 4.01 0 0 0-.99-.79 3 3 0 0 0-2.72 0c-.45.23-.81.6-1 .79a9 9 0 0 1-.04.05l-19.3 19.3c-1.64 1.63-2.53 2.52-3.35 3.47a36 36 0 0 0-4.32 6.16c-.6 1.1-1.14 2.24-2.11 4.33l-.3.6c-.4.75-.84 1.61-.8 2.43a2.5 2.5 0 0 0 2.37 2.36c.82.05 1.68-.4 2.44-.79l.59-.3c2.09-.97 3.23-1.5 4.33-2.11a36 36 0 0 0 6.16-4.32c.95-.82 1.84-1.71 3.47-3.34l19.3-19.3.05-.06a3 3 0 0 0 .78-3.71c-.22-.45-.6-.81-.78-1l-.02-.02-.03-.03-3.67-3.67a8.7 8.7 0 0 1-.06-.05ZM16.2 26.97 35.02 8.15l2.83 2.83L19.03 29.8c-1.7 1.7-2.5 2.5-3.33 3.21a32 32 0 0 1-7.65 4.93 32 32 0 0 1 4.93-7.65c.73-.82 1.51-1.61 3.22-3.32Z']")
|
602
|
-
# page.click("path[d='M37.37 4.85a4.01 4.01 0 0 0-.99-.79 3 3 0 0 0-2.72 0c-.45.23-.81.6-1 .79a9 9 0 0 1-.04.05l-19.3 19.3c-1.64 1.63-2.53 2.52-3.35 3.47a36 36 0 0 0-4.32 6.16c-.6 1.1-1.14 2.24-2.11 4.33l-.3.6c-.4.75-.84 1.61-.8 2.43a2.5 2.5 0 0 0 2.37 2.36c.82.05 1.68-.4 2.44-.79l.59-.3c2.09-.97 3.23-1.5 4.33-2.11a36 36 0 0 0 6.16-4.32c.95-.82 1.84-1.71 3.47-3.34l19.3-19.3.05-.06a3 3 0 0 0 .78-3.71c-.22-.45-.6-.81-.78-1l-.02-.02-.03-.03-3.67-3.67a8.7 8.7 0 0 1-.06-.05ZM16.2 26.97 35.02 8.15l2.83 2.83L19.03 29.8c-1.7 1.7-2.5 2.5-3.33 3.21a32 32 0 0 1-7.65 4.93 32 32 0 0 1 4.93-7.65c.73-.82 1.51-1.61 3.22-3.32Z']")
|
603
|
-
# page.wait_for_selector('div[data-contents="true"]')
|
604
|
-
# page.wait_for_function("document.querySelector('.info-progress-num').textContent.trim() === '100%'", timeout=3000000)
|
605
|
-
# time.sleep(0.2)
|
606
|
-
# except:
|
607
|
-
# sys.exit("ERROR ADDING SOUND: Video saved as draft")
|
608
528
|
|
529
|
+
sound_fail = False
|
609
530
|
if sound_name != None:
|
610
|
-
page.click("div.TUXButton-label:has-text('Edit video')")
|
611
|
-
page.wait_for_selector("input.search-bar-input")
|
612
|
-
page.fill(f"input.search-bar-input", f"{sound_name}")
|
613
|
-
time.sleep(0.2)
|
614
|
-
page.click("div.TUXButton-label:has-text('Search')")
|
615
531
|
try:
|
616
|
-
page.
|
617
|
-
page.click("div.music-card-container")
|
618
|
-
page.wait_for_selector("div.TUXButton-label:has-text('Use')")
|
619
|
-
page.click("div.TUXButton-label:has-text('Use')")
|
532
|
+
page.click("div.TUXButton-label:has-text('Edit video')")
|
620
533
|
except:
|
621
|
-
|
534
|
+
sound_fail = True
|
535
|
+
if sound_fail == False:
|
536
|
+
page.wait_for_selector("input.search-bar-input")
|
537
|
+
page.fill(f"input.search-bar-input", f"{sound_name}")
|
538
|
+
time.sleep(0.2)
|
539
|
+
page.click("div.TUXButton-label:has-text('Search')")
|
540
|
+
try:
|
541
|
+
page.wait_for_selector('div.music-card-container')
|
542
|
+
page.click("div.music-card-container")
|
543
|
+
page.wait_for_selector("div.TUXButton-label:has-text('Use')")
|
544
|
+
page.click("div.TUXButton-label:has-text('Use')")
|
545
|
+
except:
|
546
|
+
sys.exit(f"ERROR: SOUND '{sound_name}' NOT FOUND")
|
547
|
+
try:
|
548
|
+
page.wait_for_selector('img[src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMSAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAgNy41MDE2QzAgNi42NzMxNyAwLjY3MTU3MyA2LjAwMTYgMS41IDYuMDAxNkgzLjU3NzA5QzMuODY4MDUgNi4wMDE2IDQuMTQ0NTggNS44NzQ4OCA0LjMzNDU1IDUuNjU0NDlMOC43NDI1NSAwLjU0MDUyQzkuMzQ3OCAtMC4xNjE2NjggMTAuNSAwLjI2NjM3NCAxMC41IDEuMTkzNDFWMTguOTY3MkMxMC41IDE5Ljg3NDUgOS4zODg5NCAyMC4zMTI5IDguNzY5NDIgMTkuNjVMNC4zMzE3OSAxNC45MDIxQzQuMTQyNjkgMTQuNjk5OCAzLjg3ODE2IDE0LjU4NDkgMy42MDEyMiAxNC41ODQ5SDEuNUMwLjY3MTU3MyAxNC41ODQ5IDAgMTMuOTEzNCAwIDEzLjA4NDlWNy41MDE2Wk01Ljg0OTQ1IDYuOTYwMjdDNS4yNzk1NiA3LjYyMTQzIDQuNDQ5OTcgOC4wMDE2IDMuNTc3MDkgOC4wMDE2SDJWMTIuNTg0OUgzLjYwMTIyQzQuNDMyMDMgMTIuNTg0OSA1LjIyNTY0IDEyLjkyOTUgNS43OTI5NSAxMy41MzY0TDguNSAxNi40MzI4VjMuODg1MjJMNS44NDk0NSA2Ljk2MDI3WiIgZmlsbD0iIzE2MTgyMyIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTEzLjUxNSA3LjE5MTE5QzEzLjM0MjQgNi45NzU1OSAxMy4zMzk5IDYuNjYwNTYgMTMuNTM1MiA2LjQ2NTNMMTQuMjQyMyA1Ljc1ODE5QzE0LjQzNzYgNS41NjI5MyAxNC43NTU4IDUuNTYxNzUgMTQuOTM1NiA1Ljc3MTM2QzE2Ljk5NTkgOC4xNzM2MiAxNi45OTU5IDExLjgyOCAxNC45MzU2IDE0LjIzMDNDMTQuNzU1OCAxNC40Mzk5IDE0LjQzNzYgMTQuNDM4NyAxNC4yNDIzIDE0LjI0MzVMMTMuNTM1MiAxMy41MzY0QzEzLjMzOTkgMTMuMzQxMSAxMy4zNDI0IDEzLjAyNjEgMTMuNTE1IDEyLjgxMDVDMTQuODEzIDExLjE4ODUgMTQuODEzIDguODEzMTIgMTMuNTE1IDcuMTkxMTlaIiBmaWxsPSIjMTYxODIzIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNMTYuNzE3MiAxNi43MTgzQzE2LjUyMTkgMTYuNTIzMSAxNi41MjMxIDE2LjIwNzQgMTYuNzA3MiAxNi4wMDE3QzE5LjcyNTcgMTIuNjMgMTkuNzI1NyA3LjM3MTY4IDE2LjcwNzIgNC4wMDAwMUMxNi41MjMxIDMuNzk0MjcgMTYuNTIxOSAzLjQ3ODU4IDE2LjcxNzIgMy4yODMzMkwxNy40MjQzIDIuNTc2MjFDMTcuNjE5NSAyLjM4MDk1IDE3LjkzNyAyLjM4MDIgMTguMTIzMyAyLjU4NDA4QzIxLjkwOTkgNi43MjkyNiAyMS45MDk5IDEzLjI3MjQgMTguMTIzMyAxNy40MTc2QzE3LjkzNyAxNy42MjE1IDE3LjYxOTUgMTcuNjIwNyAxNy40MjQzIDE3LjQyNTVMMTYuNzE3MiAxNi43MTgzWiIgZmlsbD0iIzE2MTgyMyIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPC9zdmc+Cg=="]')
|
549
|
+
page.click('img[src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMSAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAgNy41MDE2QzAgNi42NzMxNyAwLjY3MTU3MyA2LjAwMTYgMS41IDYuMDAxNkgzLjU3NzA5QzMuODY4MDUgNi4wMDE2IDQuMTQ0NTggNS44NzQ4OCA0LjMzNDU1IDUuNjU0NDlMOC43NDI1NSAwLjU0MDUyQzkuMzQ3OCAtMC4xNjE2NjggMTAuNSAwLjI2NjM3NCAxMC41IDEuMTkzNDFWMTguOTY3MkMxMC41IDE5Ljg3NDUgOS4zODg5NCAyMC4zMTI5IDguNzY5NDIgMTkuNjVMNC4zMzE3OSAxNC45MDIxQzQuMTQyNjkgMTQuNjk5OCAzLjg3ODE2IDE0LjU4NDkgMy42MDEyMiAxNC41ODQ5SDEuNUMwLjY3MTU3MyAxNC41ODQ5IDAgMTMuOTEzNCAwIDEzLjA4NDlWNy41MDE2Wk01Ljg0OTQ1IDYuOTYwMjdDNS4yNzk1NiA3LjYyMTQzIDQuNDQ5OTcgOC4wMDE2IDMuNTc3MDkgOC4wMDE2SDJWMTIuNTg0OUgzLjYwMTIyQzQuNDMyMDMgMTIuNTg0OSA1LjIyNTY0IDEyLjkyOTUgNS43OTI5NSAxMy41MzY0TDguNSAxNi40MzI4VjMuODg1MjJMNS44NDk0NSA2Ljk2MDI3WiIgZmlsbD0iIzE2MTgyMyIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTEzLjUxNSA3LjE5MTE5QzEzLjM0MjQgNi45NzU1OSAxMy4zMzk5IDYuNjYwNTYgMTMuNTM1MiA2LjQ2NTNMMTQuMjQyMyA1Ljc1ODE5QzE0LjQzNzYgNS41NjI5MyAxNC43NTU4IDUuNTYxNzUgMTQuOTM1NiA1Ljc3MTM2QzE2Ljk5NTkgOC4xNzM2MiAxNi45OTU5IDExLjgyOCAxNC45MzU2IDE0LjIzMDNDMTQuNzU1OCAxNC40Mzk5IDE0LjQzNzYgMTQuNDM4NyAxNC4yNDIzIDE0LjI0MzVMMTMuNTM1MiAxMy41MzY0QzEzLjMzOTkgMTMuMzQxMSAxMy4zNDI0IDEzLjAyNjEgMTMuNTE1IDEyLjgxMDVDMTQuODEzIDExLjE4ODUgMTQuODEzIDguODEzMTIgMTMuNTE1IDcuMTkxMTlaIiBmaWxsPSIjMTYxODIzIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNMTYuNzE3MiAxNi43MTgzQzE2LjUyMTkgMTYuNTIzMSAxNi41MjMxIDE2LjIwNzQgMTYuNzA3MiAxNi4wMDE3QzE5LjcyNTcgMTIuNjMgMTkuNzI1NyA3LjM3MTY4IDE2LjcwNzIgNC4wMDAwMUMxNi41MjMxIDMuNzk0MjcgMTYuNTIxOSAzLjQ3ODU4IDE2LjcxNzIgMy4yODMzMkwxNy40MjQzIDIuNTc2MjFDMTcuNjE5NSAyLjM4MDk1IDE3LjkzNyAyLjM4MDIgMTguMTIzMyAyLjU4NDA4QzIxLjkwOTkgNi43MjkyNiAyMS45MDk5IDEzLjI3MjQgMTguMTIzMyAxNy40MTc2QzE3LjkzNyAxNy42MjE1IDE3LjYxOTUgMTcuNjIwNyAxNy40MjQzIDE3LjQyNTVMMTYuNzE3MiAxNi43MTgzWiIgZmlsbD0iIzE2MTgyMyIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPC9zdmc+Cg=="]')
|
550
|
+
time.sleep(0.5)
|
551
|
+
sliders = page.locator("input.scaleInput")
|
552
|
+
|
553
|
+
if sound_aud_vol == 'background':
|
554
|
+
slider1 = sliders.nth(0)
|
555
|
+
bounding_box1 = slider1.bounding_box()
|
556
|
+
if bounding_box1:
|
557
|
+
x1 = bounding_box1["x"] + (bounding_box1["width"] * 0.92)
|
558
|
+
y1 = bounding_box1["y"] + bounding_box1["height"] / 2
|
559
|
+
page.mouse.click(x1, y1)
|
560
|
+
|
561
|
+
slider2 = sliders.nth(1)
|
562
|
+
bounding_box2 = slider2.bounding_box()
|
563
|
+
if bounding_box2:
|
564
|
+
x2 = bounding_box2["x"] + (bounding_box2["width"] * 0.097)
|
565
|
+
y2 = bounding_box2["y"] + bounding_box2["height"] / 2
|
566
|
+
page.mouse.click(x2, y2)
|
567
|
+
|
568
|
+
if sound_aud_vol == 'main':
|
569
|
+
slider1 = sliders.nth(0)
|
570
|
+
bounding_box1 = slider1.bounding_box()
|
571
|
+
if bounding_box1:
|
572
|
+
x1 = bounding_box1["x"] + (bounding_box1["width"] * 0.092)
|
573
|
+
y1 = bounding_box1["y"] + bounding_box1["height"] / 2
|
574
|
+
page.mouse.click(x1, y1)
|
575
|
+
slider2 = sliders.nth(1)
|
576
|
+
bounding_box2 = slider2.bounding_box()
|
577
|
+
if bounding_box2:
|
578
|
+
x2 = bounding_box2["x"] + (bounding_box2["width"] * 0.92)
|
579
|
+
y2 = bounding_box2["y"] + bounding_box2["height"] / 2
|
580
|
+
page.mouse.click(x2, y2)
|
581
|
+
except:
|
582
|
+
sys.exit("ERROR ADJUSTING SOUND VOLUME: please try again.")
|
583
|
+
|
584
|
+
page.wait_for_selector("div.TUXButton-label:has-text('Save edit')")
|
585
|
+
page.click("div.TUXButton-label:has-text('Save edit')")
|
586
|
+
if suppressprint == False:
|
587
|
+
print("Added sound")
|
588
|
+
|
589
|
+
if sound_fail == False:
|
590
|
+
page.wait_for_selector('div[data-contents="true"]')
|
591
|
+
|
592
|
+
if copyrightcheck == True:
|
593
|
+
page.click('div.TUXSwitch:has(label.TUXSwitch-label:has-text("Run a copyright check")) input.TUXSwitch-input')
|
594
|
+
while copyrightcheck == True:
|
595
|
+
time.sleep(0.2)
|
596
|
+
if page.locator("span", has_text="No issues detected.").is_visible():
|
597
|
+
if suppressprint == False:
|
598
|
+
print("Copyright check complete")
|
599
|
+
break
|
600
|
+
if page.locator("span", has_text="Copyright issues detected.").is_visible():
|
601
|
+
sys.exit("COPYRIGHT CHECK FAILED: VIDEO SAVED AS DRAFT, COPYRIGHT AUDIO DETECTED FROM TIKTOK")
|
602
|
+
|
603
|
+
|
622
604
|
try:
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
x2 = bounding_box2["x"] + (bounding_box2["width"] * 0.92)
|
654
|
-
y2 = bounding_box2["y"] + bounding_box2["height"] / 2
|
655
|
-
page.mouse.click(x2, y2)
|
605
|
+
if schedule == None:
|
606
|
+
page.click('button.TUXButton.TUXButton--default.TUXButton--large.TUXButton--primary:has-text("Post")', timeout=10000)
|
607
|
+
uploaded = False
|
608
|
+
checks = 0
|
609
|
+
while uploaded == False:
|
610
|
+
if page.locator(':has-text("Leaving the page does not interrupt")').nth(0).is_visible():
|
611
|
+
time.sleep(0.2)
|
612
|
+
break
|
613
|
+
time.sleep(0.2)
|
614
|
+
checks += 1
|
615
|
+
if checks > 100:
|
616
|
+
time.sleep(10)
|
617
|
+
if checks == 150:
|
618
|
+
break
|
619
|
+
else:
|
620
|
+
page.click('button.TUXButton.TUXButton--default.TUXButton--large.TUXButton--primary:has-text("Schedule")', timeout=10000)
|
621
|
+
uploaded = False
|
622
|
+
checks = 0
|
623
|
+
while uploaded == False:
|
624
|
+
if page.locator(':has-text("Leaving the page does not interrupt")').nth(0).is_visible():
|
625
|
+
time.sleep(0.2)
|
626
|
+
break
|
627
|
+
time.sleep(0.2)
|
628
|
+
checks += 1
|
629
|
+
if checks > 100:
|
630
|
+
time.sleep(10)
|
631
|
+
if checks == 150:
|
632
|
+
break
|
633
|
+
if suppressprint == False:
|
634
|
+
print("Done uploading video, NOTE: it may take a minute or two to show on TikTok")
|
656
635
|
except:
|
657
|
-
|
636
|
+
time.sleep(5)
|
637
|
+
sys.exit("ERROR UPLOADING: VIDEO HAS SAVED AS DRAFT BUT CANT UPLOAD")
|
638
|
+
time.sleep(1)
|
658
639
|
|
659
|
-
page.
|
660
|
-
|
661
|
-
|
662
|
-
|
640
|
+
page.close()
|
641
|
+
else:
|
642
|
+
try:
|
643
|
+
page.click('button.TUXButton.TUXButton--default.TUXButton--large.TUXButton--secondary:has-text("Save draft")', timeout=10000)
|
644
|
+
except:
|
645
|
+
sys.exit("SAVE AS DRAFT BUTTON NOT FOUND; Please try account that has ability to save as draft")
|
663
646
|
|
664
|
-
|
647
|
+
time.sleep(0.5)
|
648
|
+
page.close()
|
649
|
+
|
650
|
+
browser = p.chromium.launch(headless=True)
|
665
651
|
|
666
|
-
|
667
|
-
|
668
|
-
|
652
|
+
context = browser.new_context()
|
653
|
+
context.add_cookies(cookies)
|
654
|
+
page = context.new_page()
|
655
|
+
url2 = 'https://www.tiktok.com/tiktokstudio/content?tab=draft'
|
656
|
+
|
657
|
+
while retries < 2:
|
658
|
+
try:
|
659
|
+
page.goto(url2, timeout=30000)
|
660
|
+
except:
|
661
|
+
retries +=1
|
662
|
+
time.sleep(5)
|
663
|
+
if retries == 2:
|
664
|
+
sys.exit("ERROR: TIK TOK PAGE FAILED TO LOAD, try again.")
|
665
|
+
else:
|
666
|
+
break
|
667
|
+
|
668
|
+
try:
|
669
|
+
page.wait_for_selector("path[d='M37.37 4.85a4.01 4.01 0 0 0-.99-.79 3 3 0 0 0-2.72 0c-.45.23-.81.6-1 .79a9 9 0 0 1-.04.05l-19.3 19.3c-1.64 1.63-2.53 2.52-3.35 3.47a36 36 0 0 0-4.32 6.16c-.6 1.1-1.14 2.24-2.11 4.33l-.3.6c-.4.75-.84 1.61-.8 2.43a2.5 2.5 0 0 0 2.37 2.36c.82.05 1.68-.4 2.44-.79l.59-.3c2.09-.97 3.23-1.5 4.33-2.11a36 36 0 0 0 6.16-4.32c.95-.82 1.84-1.71 3.47-3.34l19.3-19.3.05-.06a3 3 0 0 0 .78-3.71c-.22-.45-.6-.81-.78-1l-.02-.02-.03-.03-3.67-3.67a8.7 8.7 0 0 1-.06-.05ZM16.2 26.97 35.02 8.15l2.83 2.83L19.03 29.8c-1.7 1.7-2.5 2.5-3.33 3.21a32 32 0 0 1-7.65 4.93 32 32 0 0 1 4.93-7.65c.73-.82 1.51-1.61 3.22-3.32Z']")
|
670
|
+
page.click("path[d='M37.37 4.85a4.01 4.01 0 0 0-.99-.79 3 3 0 0 0-2.72 0c-.45.23-.81.6-1 .79a9 9 0 0 1-.04.05l-19.3 19.3c-1.64 1.63-2.53 2.52-3.35 3.47a36 36 0 0 0-4.32 6.16c-.6 1.1-1.14 2.24-2.11 4.33l-.3.6c-.4.75-.84 1.61-.8 2.43a2.5 2.5 0 0 0 2.37 2.36c.82.05 1.68-.4 2.44-.79l.59-.3c2.09-.97 3.23-1.5 4.33-2.11a36 36 0 0 0 6.16-4.32c.95-.82 1.84-1.71 3.47-3.34l19.3-19.3.05-.06a3 3 0 0 0 .78-3.71c-.22-.45-.6-.81-.78-1l-.02-.02-.03-.03-3.67-3.67a8.7 8.7 0 0 1-.06-.05ZM16.2 26.97 35.02 8.15l2.83 2.83L19.03 29.8c-1.7 1.7-2.5 2.5-3.33 3.21a32 32 0 0 1-7.65 4.93 32 32 0 0 1 4.93-7.65c.73-.82 1.51-1.61 3.22-3.32Z']")
|
671
|
+
page.wait_for_selector('div[data-contents="true"]')
|
669
672
|
time.sleep(0.2)
|
670
|
-
|
673
|
+
except:
|
674
|
+
sys.exit("ERROR ADDING SOUND: Video saved as draft")
|
675
|
+
|
676
|
+
if sound_name != None:
|
677
|
+
page.click("div.TUXButton-label:has-text('Edit video')")
|
678
|
+
page.wait_for_selector("input.search-bar-input")
|
679
|
+
page.fill(f"input.search-bar-input", f"{sound_name}")
|
680
|
+
time.sleep(0.2)
|
681
|
+
page.click("div.TUXButton-label:has-text('Search')")
|
682
|
+
try:
|
683
|
+
page.wait_for_selector('div.music-card-container')
|
684
|
+
page.click("div.music-card-container")
|
685
|
+
page.wait_for_selector("div.TUXButton-label:has-text('Use')")
|
686
|
+
page.click("div.TUXButton-label:has-text('Use')")
|
687
|
+
except:
|
688
|
+
sys.exit(f"ERROR: SOUND '{sound_name}' NOT FOUND")
|
689
|
+
try:
|
690
|
+
page.wait_for_selector('img[src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMSAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAgNy41MDE2QzAgNi42NzMxNyAwLjY3MTU3MyA2LjAwMTYgMS41IDYuMDAxNkgzLjU3NzA5QzMuODY4MDUgNi4wMDE2IDQuMTQ0NTggNS44NzQ4OCA0LjMzNDU1IDUuNjU0NDlMOC43NDI1NSAwLjU0MDUyQzkuMzQ3OCAtMC4xNjE2NjggMTAuNSAwLjI2NjM3NCAxMC41IDEuMTkzNDFWMTguOTY3MkMxMC41IDE5Ljg3NDUgOS4zODg5NCAyMC4zMTI5IDguNzY5NDIgMTkuNjVMNC4zMzE3OSAxNC45MDIxQzQuMTQyNjkgMTQuNjk5OCAzLjg3ODE2IDE0LjU4NDkgMy42MDEyMiAxNC41ODQ5SDEuNUMwLjY3MTU3MyAxNC41ODQ5IDAgMTMuOTEzNCAwIDEzLjA4NDlWNy41MDE2Wk01Ljg0OTQ1IDYuOTYwMjdDNS4yNzk1NiA3LjYyMTQzIDQuNDQ5OTcgOC4wMDE2IDMuNTc3MDkgOC4wMDE2SDJWMTIuNTg0OUgzLjYwMTIyQzQuNDMyMDMgMTIuNTg0OSA1LjIyNTY0IDEyLjkyOTUgNS43OTI5NSAxMy41MzY0TDguNSAxNi40MzI4VjMuODg1MjJMNS44NDk0NSA2Ljk2MDI3WiIgZmlsbD0iIzE2MTgyMyIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTEzLjUxNSA3LjE5MTE5QzEzLjM0MjQgNi45NzU1OSAxMy4zMzk5IDYuNjYwNTYgMTMuNTM1MiA2LjQ2NTNMMTQuMjQyMyA1Ljc1ODE5QzE0LjQzNzYgNS41NjI5MyAxNC43NTU4IDUuNTYxNzUgMTQuOTM1NiA1Ljc3MTM2QzE2Ljk5NTkgOC4xNzM2MiAxNi45OTU5IDExLjgyOCAxNC45MzU2IDE0LjIzMDNDMTQuNzU1OCAxNC40Mzk5IDE0LjQzNzYgMTQuNDM4NyAxNC4yNDIzIDE0LjI0MzVMMTMuNTM1MiAxMy41MzY0QzEzLjMzOTkgMTMuMzQxMSAxMy4zNDI0IDEzLjAyNjEgMTMuNTE1IDEyLjgxMDVDMTQuODEzIDExLjE4ODUgMTQuODEzIDguODEzMTIgMTMuNTE1IDcuMTkxMTlaIiBmaWxsPSIjMTYxODIzIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNMTYuNzE3MiAxNi43MTgzQzE2LjUyMTkgMTYuNTIzMSAxNi41MjMxIDE2LjIwNzQgMTYuNzA3MiAxNi4wMDE3QzE5LjcyNTcgMTIuNjMgMTkuNzI1NyA3LjM3MTY4IDE2LjcwNzIgNC4wMDAwMUMxNi41MjMxIDMuNzk0MjcgMTYuNTIxOSAzLjQ3ODU4IDE2LjcxNzIgMy4yODMzMkwxNy40MjQzIDIuNTc2MjFDMTcuNjE5NSAyLjM4MDk1IDE3LjkzNyAyLjM4MDIgMTguMTIzMyAyLjU4NDA4QzIxLjkwOTkgNi43MjkyNiAyMS45MDk5IDEzLjI3MjQgMTguMTIzMyAxNy40MTc2QzE3LjkzNyAxNy42MjE1IDE3LjYxOTUgMTcuNjIwNyAxNy40MjQzIDE3LjQyNTVMMTYuNzE3MiAxNi43MTgzWiIgZmlsbD0iIzE2MTgyMyIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPC9zdmc+Cg=="]')
|
691
|
+
page.click('img[src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMSAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAgNy41MDE2QzAgNi42NzMxNyAwLjY3MTU3MyA2LjAwMTYgMS41IDYuMDAxNkgzLjU3NzA5QzMuODY4MDUgNi4wMDE2IDQuMTQ0NTggNS44NzQ4OCA0LjMzNDU1IDUuNjU0NDlMOC43NDI1NSAwLjU0MDUyQzkuMzQ3OCAtMC4xNjE2NjggMTAuNSAwLjI2NjM3NCAxMC41IDEuMTkzNDFWMTguOTY3MkMxMC41IDE5Ljg3NDUgOS4zODg5NCAyMC4zMTI5IDguNzY5NDIgMTkuNjVMNC4zMzE3OSAxNC45MDIxQzQuMTQyNjkgMTQuNjk5OCAzLjg3ODE2IDE0LjU4NDkgMy42MDEyMiAxNC41ODQ5SDEuNUMwLjY3MTU3MyAxNC41ODQ5IDAgMTMuOTEzNCAwIDEzLjA4NDlWNy41MDE2Wk01Ljg0OTQ1IDYuOTYwMjdDNS4yNzk1NiA3LjYyMTQzIDQuNDQ5OTcgOC4wMDE2IDMuNTc3MDkgOC4wMDE2SDJWMTIuNTg0OUgzLjYwMTIyQzQuNDMyMDMgMTIuNTg0OSA1LjIyNTY0IDEyLjkyOTUgNS43OTI5NSAxMy41MzY0TDguNSAxNi40MzI4VjMuODg1MjJMNS44NDk0NSA2Ljk2MDI3WiIgZmlsbD0iIzE2MTgyMyIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTEzLjUxNSA3LjE5MTE5QzEzLjM0MjQgNi45NzU1OSAxMy4zMzk5IDYuNjYwNTYgMTMuNTM1MiA2LjQ2NTNMMTQuMjQyMyA1Ljc1ODE5QzE0LjQzNzYgNS41NjI5MyAxNC43NTU4IDUuNTYxNzUgMTQuOTM1NiA1Ljc3MTM2QzE2Ljk5NTkgOC4xNzM2MiAxNi45OTU5IDExLjgyOCAxNC45MzU2IDE0LjIzMDNDMTQuNzU1OCAxNC40Mzk5IDE0LjQzNzYgMTQuNDM4NyAxNC4yNDIzIDE0LjI0MzVMMTMuNTM1MiAxMy41MzY0QzEzLjMzOTkgMTMuMzQxMSAxMy4zNDI0IDEzLjAyNjEgMTMuNTE1IDEyLjgxMDVDMTQuODEzIDExLjE4ODUgMTQuODEzIDguODEzMTIgMTMuNTE1IDcuMTkxMTlaIiBmaWxsPSIjMTYxODIzIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNMTYuNzE3MiAxNi43MTgzQzE2LjUyMTkgMTYuNTIzMSAxNi41MjMxIDE2LjIwNzQgMTYuNzA3MiAxNi4wMDE3QzE5LjcyNTcgMTIuNjMgMTkuNzI1NyA3LjM3MTY4IDE2LjcwNzIgNC4wMDAwMUMxNi41MjMxIDMuNzk0MjcgMTYuNTIxOSAzLjQ3ODU4IDE2LjcxNzIgMy4yODMzMkwxNy40MjQzIDIuNTc2MjFDMTcuNjE5NSAyLjM4MDk1IDE3LjkzNyAyLjM4MDIgMTguMTIzMyAyLjU4NDA4QzIxLjkwOTkgNi43MjkyNiAyMS45MDk5IDEzLjI3MjQgMTguMTIzMyAxNy40MTc2QzE3LjkzNyAxNy42MjE1IDE3LjYxOTUgMTcuNjIwNyAxNy40MjQzIDE3LjQyNTVMMTYuNzE3MiAxNi43MTgzWiIgZmlsbD0iIzE2MTgyMyIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPC9zdmc+Cg=="]')
|
692
|
+
time.sleep(0.5)
|
693
|
+
sliders = page.locator("input.scaleInput")
|
694
|
+
|
695
|
+
if sound_aud_vol == 'background':
|
696
|
+
slider1 = sliders.nth(0)
|
697
|
+
bounding_box1 = slider1.bounding_box()
|
698
|
+
if bounding_box1:
|
699
|
+
x1 = bounding_box1["x"] + (bounding_box1["width"] * 0.92)
|
700
|
+
y1 = bounding_box1["y"] + bounding_box1["height"] / 2
|
701
|
+
page.mouse.click(x1, y1)
|
702
|
+
|
703
|
+
slider2 = sliders.nth(1)
|
704
|
+
bounding_box2 = slider2.bounding_box()
|
705
|
+
if bounding_box2:
|
706
|
+
x2 = bounding_box2["x"] + (bounding_box2["width"] * 0.097)
|
707
|
+
y2 = bounding_box2["y"] + bounding_box2["height"] / 2
|
708
|
+
page.mouse.click(x2, y2)
|
709
|
+
|
710
|
+
if sound_aud_vol == 'main':
|
711
|
+
slider1 = sliders.nth(0)
|
712
|
+
bounding_box1 = slider1.bounding_box()
|
713
|
+
if bounding_box1:
|
714
|
+
x1 = bounding_box1["x"] + (bounding_box1["width"] * 0.092)
|
715
|
+
y1 = bounding_box1["y"] + bounding_box1["height"] / 2
|
716
|
+
page.mouse.click(x1, y1)
|
717
|
+
slider2 = sliders.nth(1)
|
718
|
+
bounding_box2 = slider2.bounding_box()
|
719
|
+
if bounding_box2:
|
720
|
+
x2 = bounding_box2["x"] + (bounding_box2["width"] * 0.92)
|
721
|
+
y2 = bounding_box2["y"] + bounding_box2["height"] / 2
|
722
|
+
page.mouse.click(x2, y2)
|
723
|
+
except:
|
724
|
+
sys.exit("ERROR ADJUSTING SOUND VOLUME: please try again.")
|
725
|
+
|
726
|
+
page.wait_for_selector("div.TUXButton-label:has-text('Save edit')")
|
727
|
+
page.click("div.TUXButton-label:has-text('Save edit')")
|
671
728
|
if suppressprint == False:
|
672
|
-
print("
|
673
|
-
break
|
674
|
-
if page.locator("span", has_text="Copyright issues detected.").is_visible():
|
675
|
-
sys.exit("COPYRIGHT CHECK FAILED: VIDEO SAVED AS DRAFT, COPYRIGHT AUDIO DETECTED FROM TIKTOK")
|
729
|
+
print("Added sound")
|
676
730
|
|
677
731
|
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
while uploaded == False:
|
684
|
-
if page.locator(':has-text("Leaving the page does not interrupt")').nth(0).is_visible():
|
685
|
-
time.sleep(0.2)
|
686
|
-
break
|
732
|
+
page.wait_for_selector('div[data-contents="true"]')
|
733
|
+
|
734
|
+
if copyrightcheck == True:
|
735
|
+
page.click('div.TUXSwitch:has(label.TUXSwitch-label:has-text("Run a copyright check")) input.TUXSwitch-input')
|
736
|
+
while copyrightcheck == True:
|
687
737
|
time.sleep(0.2)
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
if checks == 150:
|
738
|
+
if page.locator("span", has_text="No issues detected.").is_visible():
|
739
|
+
if suppressprint == False:
|
740
|
+
print("Copyright check complete")
|
692
741
|
break
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
742
|
+
if page.locator("span", has_text="Copyright issues detected.").is_visible():
|
743
|
+
sys.exit("COPYRIGHT CHECK FAILED: VIDEO SAVED AS DRAFT, COPYRIGHT AUDIO DETECTED FROM TIKTOK")
|
744
|
+
|
745
|
+
|
746
|
+
try:
|
747
|
+
if schedule == None:
|
748
|
+
page.click('button.TUXButton.TUXButton--default.TUXButton--large.TUXButton--primary:has-text("Post")', timeout=10000)
|
749
|
+
uploaded = False
|
750
|
+
checks = 0
|
751
|
+
while uploaded == False:
|
752
|
+
if page.locator(':has-text("Leaving the page does not interrupt")').nth(0).is_visible():
|
753
|
+
time.sleep(0.2)
|
754
|
+
break
|
699
755
|
time.sleep(0.2)
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
756
|
+
checks += 1
|
757
|
+
if checks > 100:
|
758
|
+
time.sleep(10)
|
759
|
+
if checks == 150:
|
760
|
+
break
|
761
|
+
else:
|
762
|
+
page.click('button.TUXButton.TUXButton--default.TUXButton--large.TUXButton--primary:has-text("Schedule")', timeout=10000)
|
763
|
+
uploaded = False
|
764
|
+
checks = 0
|
765
|
+
while uploaded == False:
|
766
|
+
if page.locator(':has-text("Leaving the page does not interrupt")').nth(0).is_visible():
|
767
|
+
time.sleep(0.2)
|
768
|
+
break
|
769
|
+
time.sleep(0.2)
|
770
|
+
checks += 1
|
771
|
+
if checks > 100:
|
772
|
+
time.sleep(10)
|
773
|
+
if checks == 150:
|
774
|
+
break
|
775
|
+
if suppressprint == False:
|
776
|
+
print("Done uploading video, NOTE: it may take a minute or two to show on TikTok")
|
777
|
+
except:
|
778
|
+
time.sleep(5)
|
779
|
+
sys.exit("ERROR UPLOADING: VIDEO HAS SAVED AS DRAFT BUT CANT UPLOAD")
|
780
|
+
time.sleep(1)
|
713
781
|
|
714
|
-
|
782
|
+
page.close()
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: tiktokautouploader
|
3
|
-
Version: 3.
|
3
|
+
Version: 3.18
|
4
4
|
Summary: Upload or schedule videos to TikTok with viral TikTok sounds and hashtags.
|
5
5
|
Project-URL: Homepage, https://github.com/haziq-exe/TikTokAutoUploader
|
6
6
|
Author-email: HAZIQ <haziqmk123@gmail.com>
|
@@ -29,9 +29,8 @@ Description-Content-Type: text/markdown
|
|
29
29
|
|
30
30
|
[](https://pypi.org/project/tiktokautouploader/) [](https://opensource.org/licenses/MIT)
|
31
31
|
|
32
|
-
|
33
32
|
<p align="center">
|
34
|
-
<img src="READMEimage/
|
33
|
+
<img src="READMEimage/READMEGIF.gif" alt="" width="900"/>
|
35
34
|
</p>
|
36
35
|
|
37
36
|
## 🚀 Features
|
@@ -44,6 +43,8 @@ Description-Content-Type: text/markdown
|
|
44
43
|
- **⏰ Cutdown on upload time:** Upload to TikTok with way less hassle and much more speed using our library.
|
45
44
|
- **📝 Upload to different accounts:** Stay organized and on top of multiple different accounts with our multi-account functionality.
|
46
45
|
|
46
|
+
⭐️ If you like this project please feel free to star it, Thank you.
|
47
|
+
|
47
48
|
## 📦 Installation
|
48
49
|
|
49
50
|
1. **Python Installation:** Install the package using `pip`:
|
@@ -143,4 +144,10 @@ Created by **Haziq**. Feel free to reach out at [haziqmk123@gmail.com](mailto:ha
|
|
143
144
|
## 📄 License
|
144
145
|
|
145
146
|
This project is licensed under the MIT License. See the [LICENSE](LICENSE.md) file for details.
|
146
|
-
|
147
|
+
|
148
|
+
## 📮 Related Projects
|
149
|
+
|
150
|
+
If you liked this project please check out my use case showcase project that generates TikToks and uploads them using 'tiktokautouploader'
|
151
|
+
|
152
|
+
[TikTokGenerator](https://github.com/haziq-exe/TikTokGenerator)
|
153
|
+
|
@@ -0,0 +1,7 @@
|
|
1
|
+
tiktokautouploader/__init__.py,sha256=u7OWCK_u68ST8dfrkSF4Yw44CJOzV9NXI6ASRuoDfmE,64
|
2
|
+
tiktokautouploader/function.py,sha256=nSkkKC2BgnpYKGPiQmYki_J7lbSjnRtXH9nqCpAeGeY,43146
|
3
|
+
tiktokautouploader/Js_assets/login.js,sha256=SLhtPYo8ZfTRUnbR7Xqp084lSuAOqIWUxi75FlFH3vs,966
|
4
|
+
tiktokautouploader-3.18.dist-info/METADATA,sha256=ufyQiEuanGdI58GfxxryWDXaF-W0JYuiMMI6_Lx3Ack,6162
|
5
|
+
tiktokautouploader-3.18.dist-info/WHEEL,sha256=fl6v0VwpzfGBVsGtkAkhILUlJxROXbA3HvRL6Fe3140,105
|
6
|
+
tiktokautouploader-3.18.dist-info/licenses/LICENSE.md,sha256=hYds_VJIpnS5gC73WhuWk2IY_e9BWjuEJthQCb9ThyU,1073
|
7
|
+
tiktokautouploader-3.18.dist-info/RECORD,,
|
@@ -1,7 +0,0 @@
|
|
1
|
-
tiktokautouploader/__init__.py,sha256=u7OWCK_u68ST8dfrkSF4Yw44CJOzV9NXI6ASRuoDfmE,64
|
2
|
-
tiktokautouploader/function.py,sha256=1C1X7OSyw5PQssWWXB9gQn5LJj09CkwwJqapNWMOpX0,35248
|
3
|
-
tiktokautouploader/Js_assets/login.js,sha256=SLhtPYo8ZfTRUnbR7Xqp084lSuAOqIWUxi75FlFH3vs,966
|
4
|
-
tiktokautouploader-3.17.dist-info/METADATA,sha256=72o7oAEvD2wWGBebQMF5J0KNeZ_b-k2G2memIlDocK0,5862
|
5
|
-
tiktokautouploader-3.17.dist-info/WHEEL,sha256=fl6v0VwpzfGBVsGtkAkhILUlJxROXbA3HvRL6Fe3140,105
|
6
|
-
tiktokautouploader-3.17.dist-info/licenses/LICENSE.md,sha256=hYds_VJIpnS5gC73WhuWk2IY_e9BWjuEJthQCb9ThyU,1073
|
7
|
-
tiktokautouploader-3.17.dist-info/RECORD,,
|
File without changes
|
File without changes
|