GithubHelp home page GithubHelp logo

tiktokdownloadtool's Introduction

该项目已停止维护,请使用新项目tiktok-download


python Flask SQLite

版权说明&Fork原因

本项目下载逻辑fork自Johnserf-Seed TikTokDownload

fork原项目的目的是为了增加个性化的功能(若你和我一样,喜欢一个人就爱屋及乌,他所有的视频,包括每天新更新的,你都想下载的话,本项目比较适合你~)

本项目暂不支持单个视频下载,若想体验更多完善的功能请支持原作者的项目。

免责声明

本代码仅用于学习,下载后请勿用于商业用途。

Todo

  • 优化视频是否下载过判断逻辑,改成从数据库判断,而不是判断文件是否物理存在
  • 修复当用户更改名字后,增量下载又会重新下载一遍的问题~

环境要求

  • 请检查宿主机,是否安装了python环境,并且配置了环境变量
    python --version 
  • 请下载以下python库
    pip install requests
    pip install retrying
    pip install flask
    pip install flask-cors

功能

  • 全量下载:下载指定博主主页下所有的无水印视频和图片
  • 增量下载:下载之前下载过全量的博主新更新的内容
  1. 建议先使用全量下载功能,先下载一遍全部视频。
  2. 再使用增量下载功能,定期下载即可。(全量下载以后,会将当前博主放到增量下载列表里,选择增量下载功能时,无需再复制链接)

使用方法

1. Docker

docker pull creatormao/tiktokdownloadtool:latest

docker run -d -v /volume1/docker/TEST-DOWN:/opt/TikTokDownloadTool/Download --name titokdownload -p 9222:22 -p 9876:8000 -p 9654:8888 creatormao/tiktokdownloadtool:latest sh -c "/etc/init.d/ssh start && /bin/bash & python /opt/TikTokDownloadTool/web/run.py & python /code/run.py"

ps: 将 /volume1/docker/TEST-DOWN 改成实际宿主的文件夹,此文件夹用于存放下载的视频

安装完成后,访问: http://宿主机ip:9876

web

2. 命令行程序

请下载源码,在终端运行以下命令,或直接执行start.bat批处理程序,进入程序。

python TikTokMulti.py

python环境

2.1 若输入1,选择全量下载。则需要复制抖音博主主页地址

       

2.1.1 复制地址,进行下载。

ps:若遇到报错,请重新下载。基本上是服务器抽风

step3

2.2 若输入2,进行增量下载。

增量下载

3. 快捷命令

功能 命令样例 备注
普通模式 python TikTokMulti.py
快速全量下载 python TikTokMulti.py 1 https://v.douyin.com/JcjJ5Tq/
快速增量下载 python TikTokMulti.py 2 可搭配crontab定时下载

4. 定时脚本样例

#每天,白天11点39分,下午4点39分,晚上1139分,三个时间自动增量下载一次,并将日志放在/tmp/ls.txt 下
39  11,16,23  *  * * /usr/local/bin/python /opt/TikTokDownloadTool/TikTokMulti.py 2 >> /tmp/ls.txt

说明

  • 文件保存在Download文件里,以名称分类 python环境

  • 增量下载功能是根据Download文件里有无相同名称的视频来判断的,所以建议不要删除此文件夹里的视频,否则增量下载功能将失效。

DB(未完成~)

增量更新用户表(T_UPDATE_USER)

字段 名称 类型 备注
SEC_ID 用户ID VARCHAR(500)
NICK_NAME 用户名称 VARCHAR(500)

下载记录表(T_DOWNLOAD_HISTORY)

ps:可用于dashboard数据源

字段 名称 类型 备注
ID ID VARCHAR(500) 主键
DOWNLOAD_TYPE 下载类型 VARCHAR(50) 1:全量 2:增量
DOWNLOAD_STATE 下载状态 VARCHAR(50) 1:成功 0:失败
DOWNLOAD_TIME_COST 下载耗时 INTEGER 单位:秒
MESSAGE 下载日志 TEXT
VIDEO_COUNT 当次视频下载数量 INTEGER
PHOTO_COUNT 当次图片下载数量 INTEGER
IMP_DATE 日期 VARCHAR(10) 例:2020-09-10
IMP_TIME 日期 VARCHAR(19) 例:2020-09-10 00:00:00

tiktokdownloadtool's People

Contributors

creatormao 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

Watchers

 avatar  avatar  avatar  avatar

tiktokdownloadtool's Issues

用不了

大佬 你这个版本 出错。 用原版的就没问题 是什么个情况哦。
这个是你的
image

原版的可以访问进去
image

Error: KeyError: 'sec_uid'

Hi bro,
Thank you for your work. When i runfrom your code, choose 1 or 2, program always error like below:

Traceback (most recent call last):
File "TikTokMulti.py", line 444, in
RTK = TikTok('','')
File "TikTokMulti.py", line 91, in init
linkFlag=self.judge_link((self.userHomePagePrefix+self.uid), False)
File "TikTokMulti.py", line 162, in judge_link
key= params['sec_uid'][0]
[KeyError: 'sec_uid']

Canyou please have update for your code. Thanks

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.