jsonscraper
시장
저널로 돌아가기

TikTok에서 제품 관련 질문 영상 찾고 보고서 만들기

Python 스크립트로 검색된 영상을 수집하고 반응 지표를 저장한 뒤, 설명을 추려 수동 검토나 주제 분류에 활용하는 방법을 단계별로 소개합니다.

편집 정책 오류 제보

고객이 TikTok에서 제품에 관해 이야기한다면, 브랜드명으로 검색해 반복되는 질문을 정리할 자료를 확보할 수 있습니다. 결과물은 영상 설명, 작성자, 링크, 확인 가능한 반응 지표가 담긴 CSV입니다. 이 파일은 고객 지원 담당자에게 전달하거나 주제 분류의 입력 자료로 활용할 수 있습니다.

기사: TikTok에서 제품 관련 질문 영상 찾고 보고서 만들기
요약: 브랜드 검색어로 제품에 관한 질문이 설명에 담긴 공개 TikTok 영상을 모을 수 있습니다. jsonscraper로 결과를 가져오고 두 가지 응답 형식을 처리한 다음, 고객 지원이나 마케팅 팀이 활용할 수 있도록 CSV로 내보내는 방법을 살펴봅니다.
이미지 역할: 표지 — 핵심 아이디어
섹션: 
시각적 주제: 편집용 정물 사진: 작은 가정용 커피 머신 옆에 인쇄된 카드
제품 언급을 검토 가능한 FAQ 주제로 전환하는 예시.© jsonscraper · AI 생성

예를 들어 “Acme 커피 머신 사용법”이라는 질문을 검색해 보겠습니다. 아래 스크립트는 TikTok 검색을 한 번 요청하고, 문서에 설명된 두 가지 응답 구조에서 영상을 안전하게 추출한 뒤 결과를 저장합니다. 그런 다음 팀에서 설명을 직접 검토하고 비슷한 표현을 묶어 FAQ 항목이나 상품 페이지 안내로 만들 수 있습니다.

검색 결과를 표로 만들어야 하는 이유

검색 결과를 수동으로 확인하면 나중에 다시 검토하기 어렵습니다. 결과를 다시 찾아야 하고 메모도 브라우저나 대화에 흩어져 있기 쉽습니다. 저장되는 표를 만들면 영상 ID, 링크, 설명, 작성자, 확인 가능한 지표가 포함된 통합 작업 목록을 얻을 수 있습니다. 반복 실행은 일정에 맞춰 자동화할 수 있고, JSON 아카이브를 이용하면 특정 실행에서 API가 실제로 반환한 내용을 확인할 수 있습니다.

이 방식의 한계도 분명히 해야 합니다. 검색은 검색어에 맞는 결과를 반환할 뿐, 모든 언급을 빠짐없이 제공한다고 보장하지 않습니다. 따라서 이 표는 사례를 찾고 반복되는 질문을 관찰하는 데 적합합니다. 빈도를 판단하려면 여러 차례 실행하고 수동으로 확인하는 절차가 필요합니다.

검색 결과의 응답 형식

TikTok Scraper API 문서에 따르면 /searchVideo 경로는 필수 매개변수 keyword를 받습니다. 지원 매개변수에는 count, cursor, date_posted, sort_by, region도 포함됩니다. 이 예제에서는 검색어와 결과 개수만 있으면 됩니다.

응답에는 바깥쪽 상태 값과 tiktok 객체가 포함됩니다. 확인된 스키마에서는 영상이 aweme_list에 있거나 search_item_list 항목 안의 aweme_info에 있을 수 있습니다. 코드는 두 형식을 모두 처리하고 실제로 존재하는 필드만 추출합니다. 응답에 따라 영상 ID, 설명, 링크, 작성자 이름과 ID, 게시 날짜, 조회수·좋아요·댓글·공유 수가 제공될 수 있습니다.

간단한 Python 수집기

요청 라이브러리를 설치하고 키를 JSONSCRAPER_TIKTOK_LICENSE_KEY 환경 변수에 설정하세요. 코드는 Python 3.8 이상에서 사용할 수 있습니다. 원본 응답은 JSON으로, 정규화된 행은 CSV로 저장합니다. 비밀 키는 요청에 전달되지만 화면에 출력되지는 않습니다.

import csv
import json
import os
from datetime import datetime, timezone
from pathlib import Path

import requests

API_KEY = os.environ["JSONSCRAPER_TIKTOK_LICENSE_KEY"]
KEYWORD = "Acme кофемашина"

response = requests.get(
    "https://tiktok.evelode.com/searchVideo",
    params={
        "license_key": API_KEY,
        "keyword": KEYWORD,
        "count": 30,
        "region": "US",
    },
    timeout=60,
)
response.raise_for_status()
payload = response.json()

if payload.get("status") != "ok":
    raise RuntimeError("TikTok API가 예상하지 못한 바깥쪽 상태를 반환했습니다")

tiktok = payload.get("tiktok") or {}
items = list(tiktok.get("aweme_list") or [])
for result in tiktok.get("search_item_list") or []:
    video = result.get("aweme_info")
    if video:
        items.append(video)

# 첫 등장 순서를 유지하면서 중복을 제거합니다.
unique = {}
for item in items:
    video_id = item.get("aweme_id")
    if video_id:
        unique.setdefault(video_id, item)

stamp = datetime.now(timezone.utc).strftime("%Y%m%dT%H%M%SZ")
Path("data").mkdir(exist_ok=True)
Path(f"data/raw-{stamp}.json").write_text(
    json.dumps(payload, ensure_ascii=False, indent=2), encoding="utf-8"
)

columns = [
    "video_id", "description", "share_url", "author", "author_id",
    "created_at", "views", "likes", "comments", "collected_at"
]
with open("data/videos.csv", "w", newline="", encoding="utf-8") as file:
    writer = csv.DictWriter(file, fieldnames=columns)
    writer.writeheader()
    for item in unique.values():
        author = item.get("author") or {}
        stats = item.get("statistics") or {}
        created = item.get("create_time")
        writer.writerow({
            "video_id": item.get("aweme_id"),
            "description": item.get("desc"),
            "share_url": item.get("share_url"),
            "author": author.get("nickname"),
            "author_id": author.get("uid"),
            "created_at": created,
            "views": stats.get("play_count"),
            "likes": stats.get("digg_count"),
            "comments": stats.get("comment_count"),
            "collected_at": stamp,
        })

print(f"저장한 행: {len(unique)}")

python -m pip install requests 명령으로 의존성을 설치할 수 있습니다. 특정 기록에 필드가 없으면 해당 셀은 비워 둡니다. 지표에서는 특히 중요합니다. 빈 값은 필드가 응답에 포함되지 않았다는 뜻이며, 이를 0으로 바꾸지 않습니다.

CSV를 유용한 질문 목록으로 바꾸기

먼저 설명 내용을 필터링합니다. “어떻게”, “왜”, “작동하지 않음”, 모델명, 부품의 일반적인 명칭 등을 검색할 수 있습니다. 이렇게 하면 편집자가 검토할 대상을 추릴 수 있지만, 필터만으로 작성자의 의도를 단정할 수는 없습니다. 브랜드 언급은 제품 리뷰나 농담일 수도 있고, 호환성에 관한 질문일 수도 있습니다.

주제별로 분류하려면 분류기에 설명과, 작업에 적합한 경우 익명화된 기록 ID 등 꼭 필요한 텍스트 필드만 전달하세요. 예를 들어 “초기 설정”, “세척”, “호환성”, “고장”, “구매”처럼 고정된 범주를 반환하도록 요청할 수 있습니다. 담당자가 분류 결과를 확인하고 오류를 수정할 수 있도록 원래 설명을 분류 결과와 함께 보관하세요.

실무 보고서에는 주제, 검색된 사례 수, 참고용 영상 링크 몇 개, 그리고 “사람이 검토함” 열을 넣을 수 있습니다. 수집된 데이터에서 집계한 사례 수는 해당 검색어와 수집 기간의 결과를 나타낼 뿐, 문제를 겪는 전체 구매자의 비율을 뜻하지 않습니다.

페이지네이션과 정기 실행

다음 검색 결과 페이지가 필요하면 문서에 설명된 cursor 매개변수를 사용하세요. 이전 응답의 커서 값을 다음 요청에 전달합니다. 커서는 해석하지 않는 토큰으로 취급하고, 응답에 결과가 더 없거나 API가 다음 페이지가 없다고 알리면 순회를 종료하세요. 범위가 제한된 시범 운영에서는 요청 한 번으로 시작해 결과 구성을 확인한 뒤 페이지네이션을 추가하는 편이 좋습니다.

정기 수집을 하려면 운영체제의 작업 스케줄러나 CI를 통해 스크립트를 실행하세요. 실행할 때마다 별도의 원본 JSON을 저장하고 표에 수집 시각을 추가합니다. 기록이 쌓이면 영상 ID를 기준으로 중복을 제거하되, 지표 변화를 추적하려는 경우에는 반복 수집된 스냅샷을 별도로 보관하세요. 지표 비교는 동일한 기록의 스냅샷이 여러 개 있을 때만 의미가 있습니다.

키는 CI 비밀 관리 도구나 환경 변수에 보관하고, 아카이브 접근을 제한하며 내부 보관 기간을 설정하세요. 분류 시스템으로 자료를 넘기기 전에 실제로 필요한 필드가 무엇인지 확인하세요. 이렇게 하면 사용자 데이터를 불필요하게 복사하는 일을 줄이고 접근 제어도 간소화할 수 있습니다.

팀이 얻게 되는 결과

실행이 끝나면 원본 응답 아카이브와, 검색된 영상 및 확인 가능한 필드를 담은 CSV가 만들어집니다. 고객 지원팀은 링크를 확인하고 반복되는 질문을 정리할 수 있고, 마케팅팀은 사람들이 문제를 표현하는 방식을 파악할 수 있습니다. 분석 담당자는 수집을 다시 실행해 서로 다른 날짜의 관찰 결과를 비교할 수 있습니다.

기사: TikTok에서 제품 관련 질문 영상 찾고 보고서 만들기
요약: 브랜드 검색어로 제품에 관한 질문이 설명에 담긴 공개 TikTok 영상을 모을 수 있습니다. jsonscraper로 결과를 가져오고 두 가지 응답 형식을 처리한 다음, 고객 지원이나 마케팅 팀이 활용할 수 있도록 CSV로 내보내는 방법을 살펴봅니다.
이미지 역할: 보조 삽화 2 — 서로 다른 구체적 측면
섹션: 팀이 얻게 되는 결과
시각적 주제: 명확한 인포그래픽
수집 흐름: 두 가지 JSON 구조가 중복 제거를 거쳐 아카이브와 검토용 표로 합쳐집니다.© jsonscraper · AI 생성 삽화

제품명과 구체적인 문제를 결합한 좁은 검색어로 시작하고, 검색된 기록 20~30개를 직접 확인한 뒤 범주 용어를 다듬으세요. 이후 주제별 검색어, 일정 실행, 표나 데이터베이스로의 내보내기를 추가할 수 있습니다. 경로와 매개변수는 TikTok Scraper API 설명에 나와 있습니다. 더 광범위한 모니터링을 구축하기 전에 먼저 선택한 검색어의 결과를 확인하세요.

사람들

아직 이 기사에 등록된 사람이 없습니다.

계속 읽으세요제품 출시 반응을 추적하는 주간 TikTok 보고서 만들기
다음 기사 읽기

읽은 내용을 실제 연동으로 구현하세요

jsonscraper 소셜 데이터 API를 살펴보고 요청을 테스트하여 다음 워크플로를 구축하세요.

API 둘러보기