【GitHub精选项目】抖音/ TikTok 视频下载:TikTokDownloader 操作指南

在这里插入图片描述

前言

本文为大家带来的是 JoeanAmier 开发的 TikTokDownloader 项目,这是一个高效的下载 抖音/ TikTok 视频的开源工具。特别适合用户们保存他们喜欢的视频或分享给其他人。

TikTokDownloader 是一个专门设计用于下载 TikTok 视频的工具,旨在为用户提供一种快速且简便的方法来保存他们喜爱的 TikTok 内容。

  • 它提供了直观的接口,如命令行,web 端,web_api 等;
  • 提供了多种下载功能,如🔥 TikTok 主页/视频/图集/原声;抖音主页/视频/图集/收藏/直播/原声/合集/评论/账号/搜索/热榜
  • 允许用户通过简单地输入视频链接来下载视频,而无需复杂的过程或技术知识;

接下来,本文将深入探讨 TikTokDownloader 项目的特点和使用方法,以帮助用户更好地了解如何充分利用这个工具。

作者还贴心的为 Windows 用户准备了编译好的 exe 程序。大大降低了上手的难度。实属非编程人员福音。

项目地址:https://github.com/JoeanAmier/TikTokDownloader

项目概览

看到项目的介绍,它的功能可谓是丰富十足。
作者还贴心的为 Windows 用户编译好 exe 程序。大大降低了上手的难度。

在这里插入图片描述

克隆项目

git clone

最简单的,在命令行工具数据以下命令即可,如下图所示:

git clone https://github.com/JoeanAmier/TikTokDownloader.git

在这里插入图片描述

Download ZIP

当然,使用 Download ZIP 也是个不错的下载方式。

在这里插入图片描述

使用指南

该项目使用起来极其简单,只需简单配置即可。

下面做一些简单的介绍。

step 1 配置环境

确保当前的 Python >= 3.12.0,

去到项目目录下,安装所需要的库。在命令行执行以下命令即可。

pip install -r requirement.txt

step 2 启动项目

运行 main.py

python mian.py

首次启动如下图,提示说需要设置 Cookie 然后重新运行程序;

  • 会创建一个默认配置文件 settings.json

在这里插入图片描述

step 3 设置 Cookie

参考 Cookie 提取教程

或者在重新运行时候,选择 2 扫码登录设置 Cookie

step 4 下载视频

在设置好 Cookie 之后,重新启动程序,

(因为这里有多达4种运行模式,选择 Web UI 交互模式做展示)

这时候程序会调用系统默认的浏览器,去访问 http://127.0.0.1:5000


这时候我们可以先准备一个视频的链接,粘贴,然后点击,获取下载链接

在这里插入图片描述

来到下图,就可以成功下载啦!

在这里插入图片描述

注意事项

Python 版本 >= 3.12.0

参考这一份官方文档,Python 3.12 有什么新变化¶

因项目使用到了部分 Python 3.12.0 的新特性 ,而这些新特性没有向下兼容,所以在运行该项目时候,需要保证Python 版本大于等于3.12.0,下面简单说一下新特性。

具体会体现在以下两点,而只要使用上 >= Python 3.12.0,就不会有以下问题出现。

(1)shutil.which

将在搜索路径的其他地方直接匹配之前返回 cmd 与来自 PATHEXT 的组件相匹配的路径。

# shutildef which(cmd, mode=os.F_OK | os.X_OK, path=None):...

该项目会,

✅ 调用 ffmpeg 下载直播

而在项目初始化的过程中,会初始化 settings.json 文件,其中一个字段为 ffmpeg,值默认为空字符串,

# settings.json
{"accounts_urls": [],..."ffmpeg": ""
}

这就到导致在使用下面代码时候,

import shutil
from pathlib import Path# 默认为空字符串
ffmpeg_path = ""shutil.which(Path(ffmpeg_path))

会引发一个异常,

AttributeError: 'WindowsPath' object has no attribute 'lower'. Did you mean: 'owner'?

(2)引号重用

引号重用: 新特性,即在 f-字符串 的使用中,支持了重用与标记 f-字符串 本身相同的引号。

但是在 Python 3.12.0 之前,这样使用是会引出 SyntaxError 异常的。

如:

string = f"{"1 + 1"}"

运行会引发 SyntaxError 异常,

SyntaxError: f-string: expecting '}'

而在 Python 3.12.0 之后运行,引号重用 不会再引发 SyntaxError 异常。

总结

这个工具非常适合内容创作者和普通用户使用,因为它使他们能够轻松地保存重要的或有趣的内容,无论是用于个人回顾、好友分享、内容创作还是学术研究。

总之,TikTokDownloader 项目旨在为 TikTok 用户提供便捷的视频下载解决方案,帮助他们管理和享受 TikTok 上的优质内容。在合法和道德的前提下,这个工具为用户提供了更多选择,以便更好地利用 TikTok 平台上的视频资源。

后话

本次分享到此结束,
欢迎有质量的留言和评论,
see you~~🎈🎈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506329.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python的界面文字翻译_一个把网站全英文转成中文的方法,让你轻松看懂python官网...

近日,在看python官网(英文网站)时,使用了有道翻译工具查看了几个专有名词。无意间,有了是不是可以输入网站地址进行翻译的想法,翻译后的网站地址点击进去后,又是一个什么情况呢?小编…

linux配置redis服务,记一次linux下安装redis, 设置redis服务, 及添加环境变量

一. redis的安装cd /opt # 切换至opt目录下wget http://download.redis.io/releases/redis-3.2.9.tar.gz # 指定版本下载redistar xzf redis-3.2.9.tar.gz …

drools规则引擎技术指南_物联网规则引擎技术

物联网应用程序设计与典型的IT解决方案大不相同,因为它将物理操作技术(OT)与传感器、致动器和通信设备连接起来,并将数字信息技术(IT)与数据、分析和工作流连接起来。在企业环境中,物联网非常复…

linux中在工作空间编译cpp,linux tensorflow2.4.0 c++ 编译

1. bazel 版本要对应tensorflow的要求2.tensorflow 源码3.eigen4.protobuf 版本要对应tensorflow的要求(workspace.bzl 提到了这个要求)源码编译参考:https://blog.csdn.net/luo841297935/article/details/104417495其他1.CMakeLists.txtcmake_minimum_required (VERSION 2.8.8…

linux 2G内存够用吗,不管2G还是6G运存,为什么使用手机时都会先占用一半?

原标题:不管2G还是6G运存,为什么使用手机时都会先占用一半?以前安卓手机最大的缺陷就是运存问题,手机玩着玩着突然就运行内存不足了,为了运行更流畅手机运存从1G到2G…到8G,手机运存越来越大。但大家有没有…

python取列表前几个元素_Python下几种从一个序列中取出元素的方法

使用Python进行数据处理时,有时候会有这样的操作,比如从一个列表或者numpy array中随机取出一个元素,对一个列表中的元素进行shuffle,等等。虽然这些操作也可以通过编写很简短的程序完成,但我们使用Python有一点很重要…

c++ 写x64汇编 5参数_怀念9年前用纯C和汇编写的入侵检测软件

在翻出12年前用C#写的自我管理软件之后,进一步激发了本猫的怀旧情怀。上一篇在此:竟然无意间翻出12年前自己用C#写的程序这不,昨天竟然又找出2010年写的一款Windows系统入侵检测及防御小工具,当时命名是:NtInfoGuy!对于Windows的内部&#xf…

linux内核关闭网络巨帧xenomai,xenomai内核解析--双核系统调用(二)--应用如何区分xenomai/linux系统调用或服务...

版权声明:本文为本文为博主原创文章,转载请注明出处。如有错误,欢迎指正。1. 引出问题上一篇文章xenomai内核解析--双核系统调用(一)以X86处理器为例,分析了xenomai内核调用的流程,读了以后可能会觉得缺了点什么&#…

python怎么导入os模块_python之os模块

在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖…

linux7配置网卡绑定,CentOS7双网卡绑定配置

step1:创建绑定文件[rootnode-1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-bond0TYPE"bond"BOOTPROTO"none"NAME"bond0"DEVICE"bond0"IPADDR"192.168.1.20"NETMASK"255.255.255.0"GATEWAY"192.168.1.1&q…

ubuntu复制文件到另一个文件夹_简单介绍一下电脑中的文件或文件夹的复制、移动及删除的操作方式...

大家好,我是波仔,今天又来跟各位学电脑基础的朋友们分享知识,让我们一起来学习吧。复制文件或文件夹在我们日常操作文件或文件夹的过程中,经常会遇到需要复制一些文件或文件夹什么的,下面我们就一起来分享一下常用的几…

Windows和linux提权方法,Windows与Linux本地用户提权体验(一)

无论是Windows系统还是linux系统都是基于权限控制的,其严格的用户等级和权限是系统安全的有力保证。这么严密的用户权限是否不可逾越呢?下面笔者反其道而行之进行Windows及Linux下的提权测试。一、windows下获取至高权限大家知道,在Windows系统中SYSTEM…

三相逆变器双pi控制器参数如何调节_光伏逆变器短路特性简析

1前言短路故障相对于其他故障类型来说是比较常见的,不同的设备的短路故障,大了讲都一样,细了说各有千秋,今天我们主要聊聊光伏逆变器的短路特征。电力系统中的电源,传统意义是指的是并入电力系统的同步发电机。但随着分…

linux安装多路径报错,Linux操作系统配置多路径通用教程(适用于(RHEL,CentOS,SuSE等)...

Linux操作系统配置多路径通用教程(适用于(RHEL,CentOS,SuSE等)猫先生 • 2019 年 06 月 01 日一,安装软件1,执行以下命令,检查当前系统中是否已经安装多路径工具:rpm -qa | grep device-mapper-multipathSuSE 系统 multipath 相关…

python脚本根据cookies自动登录网站_python实现带验证码网站的自动登陆实现代码...

早听说用python做网络爬虫非常方便,正好这几天单位也有这样的需求,需要登陆XX网站下载部分文档,于是自己亲身试验了一番,效果还不错。 本例所登录的某网站需要提供用户名,密码和验证码,在此使用了python的u…

鸟叔linux私房菜基础篇简体,鸟叔的Linux私房菜基础篇-学习笔记(一)

鸟叔的Linux私房菜基础篇-学习笔记(一)开机进入命令行模式:ctrlalt[F1-F6]的任意键进入命令行编辑界面ctrlaltF7进入图形界面模式开始下达指令[dmtsaistudy ~]$ command [-options] parameter1 parameter2 …一行指令中第一个输入的部分绝对是“指令(command)”或“可可执行文件…

net framework 3.5 安装错误_PageAdmin CMS建站系统报http403错误的解决方案

pageadmin CMS目前已经是国内用户最多的网站内容管理系统,但是很多新手第一次安装时候最常见的错误就是http403错误。针对这个错误,小编我整理出了常见的原因及解决方法原因1、后台站点绑定的域名和当前打开的域名不一致。解决办法:重装PageA…

linux怎么配置svn形式访问,linux服务器svn访问地址

弹性云服务器 ECS弹性云服务器(Elastic Cloud Server)是一种可随时自助获取、可弹性伸缩的云服务器,帮助用户打造可靠、安全、灵活、高效的应用环境,确保服务持久稳定运行,提升运维效率三年低至5折,多种配置可选了解详情什么是弹性…

java进程内存一直没释放_五分钟彻底搞懂你一直没明白的Linux内存管理

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内核态和用户态…

c语言basic解释器,要理解解释器,做一个小解释器----小话c语言(20)

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼}list->tail->next obj;list->tail obj;return obj;}void cc_arg_list_free(cc_arg_list *list){cc_arg_obj *head list->head;while(head){cc_arg_obj *next head->next;cc_arg_obj_free(head);head next;}}v…