flowtok/tiktok-api

PHP的不官方TikTok API

2.0.3 2021-06-20 18:28 UTC

README

GitHub issues Packagist Downloads GitHub Workflow Status GitHub license Discord

PHP的不官方TikTok API

通过Composer安装

composer require ssovit/tiktok-api

Discord

尝试我的Telegram机器人

尝试我的Telegram机器人 获取任何TikTok视频的无水印版本

想要支持吗?

BTC: 1KA78sxnqEYPdni4txdieGJzVkH8AEn9dy ETH: 0x85110345abc62327d3c4cf657b7aabf8628d373c Buy Me A Coffee

寻找无水印视频API?

它提供每月订阅服务。下面有计划和联系详情。

用法

参考/example目录中的示例

$api=new \Sovit\TikTok\Api(array(/* config array*/));

$trendingFeed=$api->getTrendingFeed($maxCursor=0);

$userData=$api->getUser("tiktok");

$userFeed=$api->getUserFeed("tiktok",$maxCursor=0);

$challenge=$api->getChallenge("foryourpage");

$challengeFeed=$api->getChallengeFeed("foryourpage",$maxCursor=0);

$musc=$api->getMusic("6798898508385585925");

$musicFeed=$api->getMusicFeed("6798898508385585925",$maxCursor=0);

$videoData=$api->getVideoByID("6829540826570296577");

$videoData=$api->getVideoByUrl("https://www.tiktok.com/@zachking/video/6829303572832750853");

$noWatermark=$api->getNoWatermark("https://www.tiktok.com/@zachking/video/6829303572832750853");

可用选项

$api=new \Sovit\TikTok\Api(array(
	"user-agent"		=> 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36', // Valid desktop browser HTTP User Agent
	"proxy-host"		=> false,
	"proxy-port"		=> false,
	"proxy-username"	=> false,
	"proxy-password"	=> false,
	"cache-timeout"		=> 3600 // 1 hours cache timeout
	"cookie_file"		=> sys_get_temp_dir() . 'tiktok.txt', // cookie file path
	"nwm_endpoint"		=> "https://my-api.example.com" // private api endpoint
	"api_key"		=> "API_KEY" // see below on how to get API key
	), $cache_engine=false);

缓存引擎

您可以构建自己的引擎,该引擎将存储和从本地存储中检索缓存,以避免频繁请求TikTok服务器。这可以帮助避免因频繁请求而被TikTok服务器封禁。

缓存引擎应具有API类使用的可调用的getset方法

// Example using WordPress transient as cache engine
Class MyCacheEngine{
	function get($cache_key){
		return get_transient($cache_key);
	}
	function set($cache_key,$data,$timeout=3600){
		return set_transient($cache_key,$data,$timeout);
	}
}

用法

$cache_engine=new MyCacheEngine();
$api=new \Sovit\TikTok\Api(array(/* config array*/),$cache_engine);

流和下载视频

参考/example文件夹中的视频流和下载示例 注意:TikTok视频在HTML视频播放器中无法直接播放,因为它们需要www.tiktok.com作为http引用。

代理支持

要使用代理,提供proxy-hostproxy-portproxy-usernameproxy-password 建议您使用代理以防止您的IP被封禁。

如果您在短时间内进行大量请求,强烈建议使用旋转代理服务。 Webshare.io代理服务 是一个好的选择。 这是我的推荐链接,我从中获得一些收益

可用方法

  • getTrendingFeed - 获取趋势动态 getTrendingFeed($maxCursor)
  • getUser - 获取TikTok用户的个人资料数据 getUser($username)
  • getUserFeed - 通过ID获取用户动态 getUserFeed($user_id,$maxCursor)
  • getUserFeedByName - 通过名称获取用户动态 getUserFeedByName($username,$maxCursor)
  • getChallenge - 获取挑战/标签信息 getChallenge($challenge)
  • getChallengeFeed - 通过ID获取挑战动态 getChallengeFeed($challenge_id, $maxCursor)
  • getChallengeFeedByName - 通过名称获取挑战动态 getChallengeFeedByName($challenge,$maxCursor)
  • getMusic - 获取音乐信息 getMusic($music_id)
  • getMusicFeed - 获取音乐动态 getMusicFeed($music_id,$maxCursor)
  • getVideoByID - 通过ID获取视频 getVideoByID($video_id)
  • getVideoByUrl - 通过URL获取视频 getVideoByUrl($video_url)
  • getNoWatermark - 通过URL获取无水印视频 getNoWatermark($video_url) (仅适用于2020年7月28日之前的视频)。私有API服务器提供订阅服务,适用于所有TikTok帖子

$maxCursor 默认为 0,是结果页面的偏移量。下一页的maxCursor在当前页面上暴露于调用动态数据。

待办事项

  • 拯救宇宙
  • SOCKS代理支持
  • 多代理支持(轮询。充当旋转代理)

新视频的无水印视频URL

2020年7月24-28日后发布的带有水印的视频中,TikTok视频没有视频ID作为元数据。以下是非水印视频API的订阅计划。

私有API服务器订阅定价

在寻找API源代码吗?

TikTok移动应用API的源代码可供获取。

可用变体

  • PHP (无外部依赖的独立版本)
  • NodeJs (无外部依赖的独立版本)

联系方式

结果为空?

使用代理。您在短时间内对API进行了过多的请求。推荐使用旋转代理。

想要改进这个库?想要贡献力量?

请毫不犹豫地创建拉取请求。

免责声明

TikTok总是在更新他们的API端点,但我会尽可能地保持这个库。如果您或您的IP使用此API被禁用,我概不负责。建议您使用代理。