/ clis / douyin / stats.js
stats.js
 1  import { cli, Strategy } from '@jackwener/opencli/registry';
 2  import { browserFetch } from './_shared/browser-fetch.js';
 3  cli({
 4      site: 'douyin',
 5      name: 'stats',
 6      description: '作品数据分析',
 7      domain: 'creator.douyin.com',
 8      strategy: Strategy.COOKIE,
 9      args: [
10          { name: 'aweme_id', required: true, positional: true },
11      ],
12      columns: ['metric', 'value'],
13      func: async (page, kwargs) => {
14          const now = Math.floor(Date.now() / 1000);
15          const sevenDaysAgo = now - 7 * 86400;
16          const url = 'https://creator.douyin.com/janus/douyin/creator/data/item_analysis/metrics_trend';
17          const body = {
18              aweme_id: kwargs.aweme_id,
19              start_time: sevenDaysAgo,
20              end_time: now,
21              metrics: ['play_count', 'like_count', 'comment_count', 'share_count'],
22          };
23          const res = await browserFetch(page, 'POST', url, { body });
24          const data = res.data ?? {};
25          return Object.entries(data).map(([metric, value]) => ({ metric, value }));
26      },
27  });