Code Monkey home page Code Monkey logo

tiktok_youtube_douyin_handling's Introduction

注意!!!:

  • 项目仅供学习交流
  • 更新抖音无水印视频提取, 需要安装nodejs环境
  • 开启tiktok/youtube爬虫, 需要境外ip;
  • 如果douyin爬虫失效, 可手动更新cookies;
  • 需要的一些第三方库: requirements.txt

预览及功能介绍

  • 预览: video_list
  • 无水印视频抓取: 包括tiktok视频; youtube视频; 抖音视频
  • 视频发布: tiktok/youtube视频到抖音; 抖音视频到tiktok/youtube平台
  • 发布视频使用的selenium

运行环境:

  • python3 nodejs
  • pyexecjs
  • flask(提供web服务功能)
  • selenium(登录及发布视频)
  • requests(请求库)
  • threadpool(线程池,多线程请求)
  • mongodb(存储视频数据)
  • 默认 mongodb 数据库无密码验证(有则自行修改); 必须建立数据库名: handling_vedio 表名: vedios

启动程序(默认启动路径为项目内)

  • 开启指定视频爬虫(最好设置在crontab 四个小时执行一次)

      本地测试: python3 -u timing_crawl.py test
    
      部署在服务器: python3 -u timing_crawl.py server
    
  • 开启web服务(开启之前,需要先开启爬虫)

      本地测试: python3 -u run_server.py test
      
      部署在服务器: python3 -u run_server.py server
      
      服务器后台启动: nohup python3 -u run_server.py server &
    

Web 页面

  • 1.视频列表页面:

      例如: http://bosshr.top:5050/video_list
      实现分页, 每页最多为50个, pagesize为固定50
      点击视频即可跳转到视频播放页面
    
  • 2.视频播放页面:

      例如:http://bosshr.top:5050/video?video_id=7056631930162400512
      功能: 播放视频; 下载视频(下载到服务器或者本地) ; 搬运视频(点击跳转到搬运页面); 
      视频标签: 视频来源; 该视频的分类关键字
    
  • 3.视频发布页面:

      例如:http://bosshr.top:5050/handling
      功能: 播放视频; 合成视频; 发布视频到指定平台
      发布视频: 来源是youtube或tiktok的视频 发布到抖音平台; 来源是抖音的视频,可选择发布到tiktok或者youtube平台(点击选择按钮即可选择要发布的平台)
      登录: 来源是youtube或tiktok的视频 发布到抖音平台 登录需扫描二维码登录(如果出现短信验证码, 后续需要输入);
           来源是抖音的视频,发布到youtube平台需要账号密码登录(google账号)
           来源是抖音的视频, 发布到tiktok平台需要邮箱登录(注册tiktok的邮箱)
    

配置文件(详情见config.ini配置)

  • Crawlers: 爬虫的配置项:

      # 抓取视频的关键字 ,分割
      Keywords_english = hot
      Keywords_chinese = 小姐姐
      # 是否开启某爬虫抓取
      Tiktok_crawler = True
      Youtube_crawler = True
      Douyin_crawler = True
      # 爬虫发送请求时最大线程数量
      Max_thread = 2
      # # tiktok douyin 关键字搜索视频结果分页数,最多为3(默认最多抓取3页)
      Max_page = 1
      # 是否使用代理(默认不开启,需要运行在境外ip机器上; 开启时需要配置下面代理详情)
      Proxy_switch = False
      # http/https协议都使用以下代理(示例代理不可用, 需要境外ip, 并设下面Use为True)
      Use_simple_proxy = False
      Simple_proxy = 127.0.0.1:9494
      # socks5协议使用以下代理(示例代理不可用,需要境外ip, 并设下面Use为True)
      Use_socks5_proxy = False
      Socks5_proxy = socks5://127.0.0.1:9494
    
  • Login : 模拟登录配置项:

      # 是否使用代理(默认不开启,需要运行在境外ip机器上; 开启时需要配置下面代理详情)
      Proxy_switch = False
      # http/https协议都使用以下代理(示例代理不可用, 需要境外ip, 并设下面Use为True)
      Use_simple_proxy = False
      Simple_proxy = http://127.0.0.1:9494
      # socks5协议使用以下代理(示例代理不可用,需要境外ip, 并设下面Use为True)
      Use_socks5_proxy = False
      Socks5_proxy = socks5://127.0.0.1:9494
      # 发布视频时,最大等待时间, 默认为180s, 超出时间, 发布视频失败
      Max_upload_time = 180
    
  • Web_API : web服务配置项:

      # API地址, 一般测试环境为0.0.0.0
      Host = 0.0.0.0
      # API默认运行端口
      Port = 5050
    
  • Path : 路径/地址配置项:

      # 测试环境 mongodb 地址 
      Mongo_host_local = 127.0.0.1
    
      # 服务器环境 mongodb 地址 
      Mongo_host_server = 127.0.0.1
      # 服务器环境 mongodb 端口 
      Mongo_port = 27017
    
      # chrome log 目录 这里是相对路径 可修改
      Chrome_log = chrome_logs/
    
      视频保存地址 报错截屏地址 这里是相对路径 可修改
      Video_path = static/videos/
      Error_path = static/errors/
      谷歌浏览器的版本号 必须
      chrome_version = 119
    

备注

  • 爬虫:

      采集到的tiktok视频链接为短效链接, 有效期不到6h, 所以安排定时任务, 每4h采集一次(tiktok关键字搜索视频接口自动更新部分视频, 定时采集实现了定时获取包含关键字的热门视频)
      
      采集到的youtube视频链接为短效链接, 有效期不到6h, 安排定时任务, 每4h采集一次; 返回的视频中不含音频, 发布前需要合成视频和相应的音频, 或者添加新的音频
      
      采集到的抖音视频有长效链接和短效链接, 但无法在线播放(原因未知) 播放前先点击下载按钮,下载到服务器或本地, 即可播放; 每4h采集一次; 
    
  • web网页:

      视频页面(第一个页面)包含功能: 下载按钮(下载图标); 搬运按钮(爱心图片); 下一个视频按钮(下一个图标)   
      
      搬运页面(点击搬运按钮之后)包含功能: 登录区域(包含二维码登录, 账号密码登录, 编辑视频标题); 合成视频按钮(只有youtube的视频才需要合并); 发布按钮(点击即可发布视频)
    
      后端使用flask, 前后端交互, 采用js的ajax POST请求传输数据
    

tiktok_youtube_douyin_handling's People

Contributors

lonerge avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

tiktok_youtube_douyin_handling's Issues

下载视频异常

下载视频异常: [Errno 2] No such file or directory: 'D:\tiktok\douyin_login\videos\7110821272342351135.mp4'

你好

请问有爬取个人简介的版本吗?

翻墙后运行错误,这个是因为必须要部署到国外服务器吗

初始化爬虫...
请求 https://www.youtube.com/youtubei/v1/search?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8&prettyPrint=false 发生错误, 开始重试, 重试次数:1
请求 https://www.youtube.com/youtubei/v1/search?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8&prettyPrint=false 发生错误, 开始重试, 重试次数:2

初始化爬虫...
search_keywords: funny
请求 https://www.tiktok.com/api/search/general/full/?aid=1988&app_language=zh-Hant-TW&app_name=tiktok_web&battery_info=1&browser_language=zh-CN&browser_name=Mozilla&browser_online=true&browser_platform=MacIntel&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F107.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&device_id=7173961358269646337&device_platform=web_pc&focus_state=true&from_page=search&history_len=3&is_fullscreen=false&is_page_visible=true&keyword=funny&offset=0&os=mac&priority_region=&referer=&region=SG&screen_height=1080&screen_width=1920&tz_name=Asia%2FShanghai&webcast_language=zh-Hant-TW&msToken=W7IagJhZQ5xWYCBfr5njBqLgccZISpTbf-BVQLkvYwdpWD7uZgApaAQCwQwctB-T0zaG06A20anq07vAKTsL_dVlueFmCbMkyzFcfLLI03K_Wcpb-0vupyisglLCAYb4w_VeujeWflqCY0pK&X-Bogus=DFSzswVLqg2ANcoQSpF8c37TlqCg&_signature=_02B4Z6wo000019RUk9QAAIDAQILI2MoFNjvUVJdAAJajfa 发生错误, 开始重试, 重试次数:1 error: HTTPSConnectionPool(host='www.tiktok.com', port=443): Max retries exceeded with url: /api/search/general/full/?aid=1988&app_language=zh-Hant-TW&app_name=tiktok_web&battery_info=1&browser_language=zh-CN&browser_name=Mozilla&browser_online=true&browser_platform=MacIntel&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F107.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&device_id=7173961358269646337&device_platform=web_pc&focus_state=true&from_page=search&history_len=3&is_fullscreen=false&is_page_visible=true&keyword=funny&offset=0&os=mac&priority_region=&referer=&region=SG&screen_height=1080&screen_width=1920&tz_name=Asia%2FShanghai&webcast_language=zh-Hant-TW&msToken=W7IagJhZQ5xWYCBfr5njBqLgccZISpTbf-BVQLkvYwdpWD7uZgApaAQCwQwctB-T0zaG06A20anq07vAKTsL_dVlueFmCbMkyzFcfLLI03K_Wcpb-0vupyisglLCAYb4w_VeujeWflqCY0pK&X-Bogus=DFSzswVLqg2ANcoQSpF8c37TlqCg&_signature=_02B4Z6wo000019RUk9QAAIDAQILI2MoFNjvUVJdAAJajfa (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f9233689d30>: Failed to establish a new connection: [Errno 60] Operation timed out'))

作者您好,运行时报错

Traceback (most recent call last):
File "D:\pythonproject\tiktok_youtube_douyin_handling-master\timing_crawl.py", line 41, in
crawler = Crawlers()
File "D:\pythonproject\tiktok_youtube_douyin_handling-master\crawlers.py", line 31, in init
if sys.argv[1] == 'test':
IndexError: list index out of range
我是刚接触python,这个问题可能有点蠢,希望您可以抽空看一下

请教

大哥 能出一个教程吗,安装的环境

作者你好 ,现在使用tiktok的时候,显示 Caused by SSLError

具体信息如下:
请求 https://api-h2.tiktokv.com/aweme/v1/feed/?aweme_id=7199572030474226949&version_name=26.1.3&version_code=2613&build_number=26.1.3&manifest_version_code=2613&update_version_code=2613&d2a0c4b1865379fe=6273a5108e49dfcb&uuid=0064146598573312&_rticket=1667123410000&ts=1678027531&device_brand=Google&device_type=Pixel%204&device_platform=android&resolution=1080*1920&dpi=420&os_version=10&os_api=29&carrier_region=US&sys_region=US%C2%AEion=US&app_name=trill&app_language=en&language=en&timezone_name=America/New_York&timezone_offset=-14400&channel=googleplay&ac=wifi&mcc_mnc=310260&is_my_cn=0&aid=1180&ssmix=a&as=a1qwert123&cp=cbfhckdckkde1 发生错误, 开始重试, 重试次数:1

error: HTTPSConnectionPool(host='api-h2.tiktokv.com', port=443): Max retries exceeded with url: /aweme/v1/feed/?aweme_id=7199572030474226949&version_name=26.1.3&version_code=2613&build_number=26.1.3&manifest_version_code=2613&update_version_code=2613&d2a0c4b1865379fe=6273a5108e49dfcb&uuid=0064146598573312&_rticket=1667123410000&ts=1678027531&device_brand=Google&device_type=Pixel%204&device_platform=android&resolution=1080*1920&dpi=420&os_version=10&os_api=29&carrier_region=US&sys_region=US%C2%AEion=US&app_name=trill&app_language=en&language=en&timezone_name=America/New_York&timezone_offset=-14400&channel=googleplay&ac=wifi&mcc_mnc=310260&is_my_cn=0&aid=1180&ssmix=a&as=a1qwert123&cp=cbfhckdckkde1 (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)')))

优化

我看大佬写的tiktok只有通过tiktok关键词搜索,能否通过关注列表或者主页呢

请教~youtube使用gmail登录

作者你好

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.