Tiktok Auto Video Downloader - Python

MihiCherub

Well-known member
  • Sep 14, 2009
    14,806
    2
    3,232
    113
    Gampaha
    මේ දවස් වල Tiktok පොඩ්ඩක් follow කරනව. ඉතින් ඉන්න අයගෙ video download කරන්න පොඩි code කෑල්ලක් ලිව්ව Python වලින්. කාටහරි වැදගත් වෙයි කියල ඔන්න share කලා. මේකෙන් ඔයාලට පුලුවන් user කෙනෙක්ගෙ සම්පූර්ණ video list එකම එකපාර download කරගන්න. uploader video එක save කරන option එක enable කරල තියෙන්නෙ ඕනෙ නෑ. save video disable කරල තිබ්බත් download කරගන්න පුලුවන්.
    Tiktok watermark එක නැතුව download වෙන එක වැඩ කරන්නෙ නෑ. මොකක් හරි අවුලක්. වැඩියෙ හෙව්වෙ නෑ ඉක්මනින් download කරගන්න ඕනෙ නිසා. තව මේකෙ වැඩකෑලි ගොඩක් තියෙනව. මම නම් බොහොම පොඩියට කලේ.
    Jupyter notebook එකේ වැඩ නෑ. selenium webdriver error එකක් එනව. වැඩිය හෙව්වෙ නෑ. github එකේ issue එකක් තියෙනව දැක්ක. ඒ නිසා අතඇරල sublime එකේ කලේ.

    Run කරන්න පොඩි ගයිඩ් එකක් දෙන්නම්

    Installing
    Code:
    pip install TikTokApi
    python -m playwright install

    verifyFp value එක replace කරන්න. chrome web browser එකෙන් Cookie වලින් ගන්න "s_v_web_id" Key එක. s_v_web_id හොයා ගන්න බැරි නම් එකපාරක් tiktok වලට chrome එකෙන් login වෙලා logout වෙන්න.

    2.jpg


    profile_name = අවශ්‍ය කෙනාගෙ profile name එක
    video_count = අවශ්‍ය video ගනන. මේකෙ අග ඉදන් තමා එන්නෙ. ඒ කියන්න අන්තිමට දාපු විඩියෝ එකෙන්. 20-30 වගෙ අතරමැද දාපු විඩියෝ download කරන්න පුලුවන්ද බැලුවෙ නෑ.

    profile name එකෙන් folder එකක් හදාග්න්න නැත්නම් path error එකක් එයි. එහෙම නැත්නම් folder එක auto create වෙන්න දාගන්න.
    Python:
    import os
    if not os.path.exists(profile_name):
        os.makedirs(profile_name)

    tiktok dictionanry එකක් එන්නෙ. oject ඒකෙ stats attribute එකෙන් ඕනෙ stats ටික ගන්න පුලුවන්.
    stats = tiktok['stats']
    >>>{'diggCount': 1419, 'shareCount': 1, 'commentCount': 45, 'playCount': 16400}

    Python:
    from TikTokApi import TikTokApi
    
    import random
    import string
    import datetime
    
    
    def save_video(file_path):
        print(file_path)
    
        with open(file_path, 'wb') as out:
            out.write(video_bytes)
    
        print('##### Saved #####')
    
    
    verifyFp = "verify_id"
    # did = ''.join(random.choice(string.digits) for num in range(19))
    did=str(random.randint(10000, 999999999))
    
    # If playwright doesn't work for you try to use selenium
    # api = TikTokApi.get_instance(use_selenium=True)
    
    # Since TikTok changed their API you need to use the custom_verifyFp option.
    # In your web browser you will need to go to TikTok, Log in and get the s_v_web_id value.
    api = TikTokApi.get_instance(custom_verifyFp = verifyFp, use_test_endpoints = True, custom_did = did)
    
    # If you cannot find verifyFp use without
    # api = TikTokApi.get_instance(custom_did = did)
    
    profile_name = 'harshyuofficial'
    video_count = 1
    
    # tiktoks = api.byUsername(profile_name)
    tiktoks = api.byUsername(profile_name, count=video_count)
    
    for tiktok in tiktoks:
        # print(tiktok)
        # print(tiktok.keys())
    
        time = tiktok['createTime']
        date_time = datetime.datetime.fromtimestamp(time).strftime('%Y-%m-%d %H-%M-%S')
        # print(date_time)
    
        desc = tiktok['desc']
    
        video_bytes = api.get_Video_By_TikTok(tiktok)
    
        path = f'{profile_name}\{desc} {date_time}.mp4'
    
        try:
            save_video(path)
        except:
            name = ("".join( x for x in desc if (x.isalnum() or x in "._- "))).strip()
            path = f'{profile_name}\{date_time}_{name}.mp4'
            save_video(path)
    
    
    print(len(tiktoks))
    print('done')

    මෙතනින් API එක ගැන තව විස්තර තියෙනව. එහෙනම් ඇති වෙනකම් බාගන්න. මම විඩියෝ 1000ක් වගේ download කලා. අවුලක් උනේ නෑ.
     

    charith84

    Well-known member
  • Jun 22, 2006
    9,531
    4,212
    113
    ඩවුන්ලොඩ් කරන්නෙහ් එකෙන් වැඩක් තියෙනවද බ0 එත් දැන් හිතපන්කො එක පාරක් ඩවුන්ලොඩ් කරා අයෙ ඩවුන්ලොඩ් කරද්දි රිසන්ඩ් ඇඩ් කරපු ටික විතරක් ඩවුන්ලොඩ් කරන්නහ් ඔනි එඔකෙ එහෙම කිසිම ඔප්ශන් එකක් නැහ් න්එහ් ?
     
    • Like
    Reactions: lilman

    banda065

    Well-known member
  • Apr 20, 2007
    2,973
    2,235
    113
    Good work

    මම programming, coding මෙලෝ දෙයක් දන්නෙ නෑ
    ඒත් ඊයෙ Bot එකක් හදන්න Google එකෙන් බලල Python install කරගන්න හැදුව ඒත් බැරි උනා
     
    • Like
    Reactions: MihiCherub

    MihiCherub

    Well-known member
  • Sep 14, 2009
    14,806
    2
    3,232
    113
    Gampaha
    ඩවුන්ලොඩ් කරන්නෙහ් එකෙන් වැඩක් තියෙනවද බ0 එත් දැන් හිතපන්කො එක පාරක් ඩවුන්ලොඩ් කරා අයෙ ඩවුන්ලොඩ් කරද්දි රිසන්ඩ් ඇඩ් කරපු ටික විතරක් ඩවුන්ලොඩ් කරන්නහ් ඔනි එඔකෙ එහෙම කිසිම ඔප්ශන් එකක් නැහ් න්එහ් ?
    කම්මැලීනෙ නෙ බන් ඔය ඔක්කොම දාන්න. එතකොට මැනුවලි ගැනල එක ඇජස්ට් කරගන්නව ඒ ගානට. එ කිව්වෙ යූසර් වීඩියෝ අලුතෙන් 10ක් දාල තිබ්බොත් මැනුවලි ගැන්න video_count = 10 කියල දානව.
    එහෙම බැරි නම් ඔන්න කෝඩ් කෑල්ලක් ලිව්ව.

    Python:
        path = f'{profile_name}\{date_time}_{desc}.mp4'
    
        name = ("".join( x for x in desc if (x.isalnum() or x in "._- "))).strip()
        path1 = f'{profile_name}\{date_time}_{name}.mp4'
    
        if os.path.exists(path) or os.path.exists(path1):
            print(f'pass: {path}')
    
        else:
            try:
                save_video(path)
            except:    
                save_video(path1)
     
    • Like
    Reactions: shenat

    MihiCherub

    Well-known member
  • Sep 14, 2009
    14,806
    2
    3,232
    113
    Gampaha
    Good work

    මම programming, coding මෙලෝ දෙයක් දන්නෙ නෑ
    ඒත් ඊයෙ Bot එකක් හදන්න Google එකෙන් බලල Python install කරගන්න හැදුව ඒත් බැරි උනා
    මොකද්ද මචන් හදන්න ඕනෙ බොට් එක. ඕනෙ නම් හදල දෙන්නම්

    site ekaka thiyenawa eke photos blur karala thiyenne habyi link eke akuru tiakak ayin karapuwahama penawa...mekata mokak hari hadanna vidihak nadda?
    filter property එකකින් නම් කරල තියෙන්නෙ. කරන්න පුලුවන්. වෙනම ඉමේජ් දෙකක් ලෝඩ් වෙනව නම් ටිකක් අමාරු වෙයි.
     

    MachoMan

    Well-known member
  • Jul 15, 2018
    542
    498
    63
    මචන් ඔය මගුල් හදන වෙලාවේ... අපේ udemy එකේ තියෙන විඩියෝ ටික ලිස්ට් එක පිටින් ඩවුන් කරගන්න එකක් හදපන්කෝ...
    3rd Party සුත්තවල් දාන්න ගිහින් නිකම් අපේ එකවුන්ට් හැක් වෙනවා...ඒ වගේ වැදගත් දෙයක් කරපන් කෝ දෙයියා........