
Собирайте и скачивайте видео TikTok и метаданные из профилей пользователей, хэштегов и трендов без аутентификации. Выводит JSON, CSV и ZIP-архивы.
Собирайте и загружайте полезную информацию из TikTok.
Не требуется логин или пароль.
Это не официальный API и т.д. Это просто сборщик, который использует веб-API TikTok для сбора медиа.
Примечание:
Вывод JSON/CSV для постов:
id: '6748606789551410438',
text:'TEXT',
createTime: '1571282470',
authorId: '123123',
musicId: '123123',
videoUrl: 'VIDEO_URL',
diggCount: 485,
shareCount: 1,
commentCount: 24

Возможные ошибки
tiktok-scraper требует Node.js v8.6.0+ для работы.
Установка из NPM
$ npm i -g tiktok-scraper
Установка из YARN
$ yarn global add tiktok-scraper
$ tiktok-scraper --help
Usage: tiktok-scraper <command> [options]
Commands:
tiktok-scraper user [id] Сбор видео по имени пользователя. Введите только имя пользователя
tiktok-scraper hashtag [id] Сбор видео по хэштегу. Введите хэштег без #
tiktok-scraper trend Сбор постов из текущих трендов
Options:
--help, -h справка [boolean]
--version Показать номер версии [boolean]
--number, -n Количество постов для сбора. Если установить 0, будут собраны
все посты [default: 20]
--proxy, -p Установить прокси [default: ""]
--timeout Если вы получите ошибку 'rate limit', вы можете попробовать
установить тайм-аут. Тайм-аут в миллисекундах: 1000 мс = 1 секунда
[default: 0]
--download, -d Загрузить и архивировать все собранные видео в ZIP-файл
[boolean] [default: false]
--filepath Директория для сохранения всех выходных файлов.
[default: "/Users/jackass/Documents/lang/NodeJs/tiktok-scraper"]
--filetype, --type, -t Тип выходного файла, в котором будет сохранена информация о посте.
'all' - сохранить информацию о всех постах в 'json' и 'csv'
[choices: "csv", "json", "all"] [default: "csv"]
Examples:
tiktok-scraper user USERNAME -d -n 100
tiktok-scraper hashtag HASHTAG_NAME -d -n 100
tiktok-scraper trend -d -n 100
Пример 1: Сбор 300 видео-постов пользователя {USERNAME}. Сохранение информации о постах в CSV-файл (по умолчанию)
$ tiktok-scraper user USERNAME -n 300
Output:
CSV path: /{CURRENT_PATH}/user_1552945544582.csv
Пример 2: Сбор 100 постов из хэштега {HASHTAG_NAME}, загрузка и сохранение их в ZIP-архив. Сохранение информации о постах в JSON и CSV файлы (--filetype all)
$ tiktok-scraper hashtag HASHTAG_NAME -n 100 -d -t all
Output:
ZIP path: /{CURRENT_PATH}/hashtag_1552945659138.zip
JSON path: /{CURRENT_PATH}/hashtag_1552945659138.json
CSV path: /{CURRENT_PATH}/hashtag_1552945659138.csv
Пример 3: Сбор 50 постов из раздела трендов, загрузка их в ZIP и сохранение информации в CSV-файл
$ tiktok-scraper trend -n 50 -d -t csv
Output:
ZIP path: /{CURRENT_PATH}/trend_1552945659138.zip
CSV path: /{CURRENT_PATH}/tend_1552945659138.csv
Для наглядности, при загрузке постов в терминале будет отображаться прогресс
Downloading 6750670497744309509 [==============================] 100%
Downloading 6749962264020782342 [==============================] 100%
Downloading 6749433991113264390 [==============================] 100%
Downloading 6750671571968429318 [==============================] 100%
Downloading 6750668198011505926 [==============================] 100%
Downloading 6748611221903117574 [==============================] 100%
Downloading 6748606789551410438 [==============================] 100%
Downloading 6748139550251535621 [==============================] 100%
Downloading 6748616311166799110 [==============================] 100%
Downloading 6748048372625689861 [==============================] 100%
const TikTokScraper = require('tiktok-scraper');
let options = {
number: 100,
};
(async () => {
try{
let posts = await TikTokScraper.user({USERNAME}, options);
console.log(posts)
} catch(error){
console.log(error)
}
})()
Promise вернет следующий результат
{
collector:[ARRAY_OF_DATA]
//If {filetype} and {download} options are enbabled then:
zip: '/{CURRENT_PATH}/user_1552963581094.zip',
json: '/{CURRENT_PATH}/user_1552963581094.json',
csv: '/{CURRENT_PATH}/user_1552963581094.csv'
}
const TikTokScraper = require('tiktok-scraper');
let options = {
count: 100,
event: true, // Enable event emitter, you won't be able to use promises
};
let posts = TikTokScraper.user({USERNAME}, options);
posts.on('data', (json) => {
//data in JSON format
})
posts.on('done', () => {
//completed
})
posts.on('error', (error) => {
//error message
})
Функции
.user(id, options) //Scrape posts from a specific user
.hashtag(id, options) //Scrape posts from hashtag section
.trend('', options) // Scrape posts from a trends section
Опции
let options = {
// Number of posts to scrape: {int default: 20}
number: 50,
// Set proxy, example: 127.0.0.1:8080: {string default: ''}
proxy: '',
// Enable or Disable event emitter. If true then you can accept data through events: {boolean default: false}
event: false,
// Timeout between requests. If 'rate limit' error received then this option can be useful: {int default: 0}
timeout: 0
// Download posts or not. If true ZIP archive in {filepath} will be created: {boolean default: false}
download: false,
// How many post should be downloaded asynchronously. Only if {download:true}: {int default: 5}
asyncDownload: 5,
// File path where all files will be saved: {string default: 'CURRENT_DIR'}
filepath: `CURRENT_DIR`,
};
MIT
Бесплатное программное обеспечение