유튜브 채널 분석 자동화! 파이썬으로 영상 정보 자동 수집하기

이미지
유튜브 채널 분석 자동화! 파이썬으로 영상 정보 자동 수집하기 (완성 코드 공개) "경쟁 채널의 인기 영상 제목과 조회수를 주기적으로 모니터링하고 싶다", "우리 채널 영상 목록을 엑셀로 정리해서 콘텐츠 현황을 파악하고 싶다", "특정 키워드로 검색되는 영상들의 조회수 추이를 추적하고 싶다"… 유튜브 스튜디오에서 데이터를 확인할 수 있지만 경쟁 채널을 비교하거나 이력을 누적 저장하기는 어렵습니다. 구글에서 제공하는 유튜브 데이터 API v3를 활용하면 파이썬으로 채널 정보, 영상 목록, 조회수, 좋아요 수, 댓글 수를 자동으로 수집할 수 있습니다. 하루 10,000 유닛까지 무료로 사용할 수 있습니다. 1단계: 유튜브 API 키 발급 (최초 1회만) 구글 클라우드 콘솔에서 API 키를 발급받아야 합니다. 아래 순서대로 진행하세요. console.cloud.google.com 에 접속해 구글 계정으로 로그인합니다. 상단 "프로젝트 선택" → "새 프로젝트" → 프로젝트 이름 입력 후 만들기 왼쪽 메뉴 "API 및 서비스" → "라이브러리" 클릭 검색창에 "YouTube Data API v3" 검색 → 클릭 → "사용 설정" 왼쪽 메뉴 "사용자 인증 정보" → "사용자 인증 정보 만들기" → "API 키" 선택 생성된 API 키를 복사해 둡니다. ⚠️ API 사용량 주의: 유튜브 API는 하루 10,000 유닛 무료 한도가 있습니다. 영상 목록 조회는 100 유닛, 영상 상세 정보는 1 유닛 소비합니다. 대량 수집 시 한도를 초과할 수 있으니 주의하세요. 2단계: 준비물 설치 터미널(윈도우: CMD 또는 파워셸)을 열고 아래 명령어를 실행하세요: pip insta...

반복 데이터 입력 완전 자동화! 파이썬으로 엑셀에 데이터 자동 입력하기

반복 데이터 입력 완전 자동화! 파이썬으로 엑셀에 데이터 자동 입력하기 (완성 코드 공개)

파이썬으로 엑셀에 데이터를 자동으로 입력하는 모습


"매일 아침 어제 매출 데이터를 엑셀 양식에 입력해야 한다", "웹에서 수집한 데이터를 정해진 엑셀 서식에 맞게 채워 넣어야 한다", "매달 거래처 목록을 기준 시트에 업데이트해야 한다"…

정해진 엑셀 양식에 데이터를 반복 입력하는 작업은 단순하지만 시간이 많이 걸리고 오타나 누락 실수가 생기기 쉽습니다. 파이썬을 한 번만 세팅해두면 데이터를 원하는 셀에 정확하게 입력하고, 수식·서식·색상까지 자동으로 적용할 수 있습니다.


1단계: 준비물 설치

파이썬이 설치되어 있어야 합니다. 없다면 python.org에서 최신 버전을 받아 설치하세요. 설치 시 반드시 "Add Python to PATH"에 체크해야 합니다.

엑셀 데이터 입력에 필요한 라이브러리를 설치합니다. 터미널(윈도우: CMD 또는 파워셸)을 열고 아래 명령어를 실행하세요:

pip install openpyxl pandas

openpyxl은 .xlsx 파일을 읽고 쓰는 라이브러리입니다. 셀 값 입력뿐 아니라 서식, 색상, 수식, 열 너비, 행 높이까지 제어할 수 있습니다. pandas는 CSV나 다른 데이터 소스에서 데이터를 읽어올 때 사용합니다.

💡 이 코드로 할 수 있는 것: 특정 셀에 값 입력, 행 단위로 데이터 추가, 셀 서식(굵기·색상·정렬) 자동 적용, 수식 자동 입력, 기존 엑셀 파일에 데이터 추가(덮어쓰기 없이)까지 처리합니다.

2단계: 완성 코드

아래 코드를 그대로 복사해서 메모장에 붙여넣고, excel_input.py로 저장하세요. 저장 시 파일 형식은 "모든 파일", 인코딩은 UTF-8로 설정합니다.

from openpyxl import Workbook, load_workbook
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side
from openpyxl.utils import get_column_letter
from pathlib import Path
from datetime import datetime

# ① 설정
OUTPUT_PATH = r"C:\Users\내이름\Desktop\업무일지.xlsx"   # ← 저장 경로
SHEET_NAME  = "일별기록"                                  # ← 시트 이름

# ② 입력할 데이터 (리스트 형태로 추가)
NEW_DATA = [
    {
        "날짜":    datetime.now().strftime("%Y-%m-%d"),
        "거래처":  "A주식회사",
        "담당자":  "홍길동",
        "매출금액": 5200000,
        "납부상태": "완납",
    },
    {
        "날짜":    datetime.now().strftime("%Y-%m-%d"),
        "거래처":  "B기술연구소",
        "담당자":  "김철수",
        "매출금액": 980000,
        "납부상태": "미납",
    },
]

# ③ 헤더 정의 (열 순서와 이름)
HEADERS = ["날짜", "거래처", "담당자", "매출금액", "납부상태"]

# ④ 스타일 정의
HEADER_FONT  = Font(bold=True, color="FFFFFF")
HEADER_FILL  = PatternFill(fill_type="solid", fgColor="2E5090")
CENTER_ALIGN = Alignment(horizontal="center", vertical="center")
BORDER_SIDE  = Side(style="thin", color="CCCCCC")
CELL_BORDER  = Border(left=BORDER_SIDE, right=BORDER_SIDE,
                      top=BORDER_SIDE, bottom=BORDER_SIDE)

# ⑤ 엑셀 파일 열기 (없으면 새로 생성)
output = Path(OUTPUT_PATH)
if output.exists():
    wb = load_workbook(output)
    if SHEET_NAME in wb.sheetnames:
        ws = wb[SHEET_NAME]
    else:
        ws = wb.create_sheet(SHEET_NAME)
        ws.append(HEADERS)   # 헤더 추가
    print(f"  ✔ 기존 파일 열기 완료")
else:
    wb = Workbook()
    ws = wb.active
    ws.title = SHEET_NAME
    ws.append(HEADERS)   # 헤더 추가
    print(f"  ✔ 새 파일 생성")

# ⑥ 헤더 서식 적용
for col_idx, header in enumerate(HEADERS, start=1):
    cell = ws.cell(row=1, column=col_idx)
    cell.font      = HEADER_FONT
    cell.fill      = HEADER_FILL
    cell.alignment = CENTER_ALIGN
    cell.border    = CELL_BORDER

# ⑦ 데이터 입력
start_row = ws.max_row + 1
for row_idx, record in enumerate(NEW_DATA, start=start_row):
    for col_idx, key in enumerate(HEADERS, start=1):
        cell = ws.cell(row=row_idx, column=col_idx, value=record.get(key, ""))
        cell.alignment = CENTER_ALIGN
        cell.border    = CELL_BORDER

        # 금액 열: 숫자 서식 적용
        if key == "매출금액":
            cell.number_format = "#,##0"

        # 미납 상태: 빨간색 배경 강조
        if key == "납부상태" and record.get(key) == "미납":
            cell.fill = PatternFill(fill_type="solid", fgColor="FFD7D7")
            cell.font = Font(color="CC0000", bold=True)

    print(f"  ✔ {row_idx}행 입력: {record.get('거래처', '')} / {record.get('날짜', '')}")

# ⑧ 열 너비 자동 조정
for col in ws.columns:
    max_len = max((len(str(cell.value)) if cell.value else 0) for cell in col)
    ws.column_dimensions[get_column_letter(col[0].column)].width = max_len + 4

# ⑨ 저장
wb.save(output)
print(f"\n✅ 완료! {len(NEW_DATA)}행 입력 → {OUTPUT_PATH}")

3단계: 실행 방법

  1. 코드 ① 설정의 OUTPUT_PATH에 저장할 엑셀 파일 경로를 입력합니다. 파일이 없으면 자동으로 새로 생성됩니다.
  2. 코드 ② 입력할 데이터의 내용을 본인 업무에 맞게 수정합니다.
  3. 코드 ③ 헤더의 열 이름을 데이터 딕셔너리의 키와 동일하게 맞춥니다.
  4. 터미널에서 아래 명령어로 실행합니다:
python excel_input.py

정상 실행 시 터미널에 이렇게 출력됩니다:

  ✔ 새 파일 생성
  ✔ 2행 입력: A주식회사 / 2026-06-08
  ✔ 3행 입력: B기술연구소 / 2026-06-08

✅ 완료! 2행 입력 → C:\Users\내이름\Desktop\업무일지.xlsx

엑셀 파일을 열면 헤더에 파란 배경 서식이 적용되고, 미납 상태 셀은 빨간 배경으로 자동 강조됩니다. 금액 열은 쉼표 구분 숫자 서식이 자동 적용됩니다. 스크립트를 다시 실행하면 기존 데이터 아래에 새 데이터가 추가됩니다.


4단계: 자주 발생하는 오류와 해결법

오류 1: PermissionError

저장하려는 엑셀 파일이 현재 열려 있을 때 발생합니다. 엑셀에서 해당 파일을 닫은 후 다시 실행하세요.

오류 2: 데이터가 헤더 위에 입력됨

기존 파일에서 시트는 있지만 헤더가 없는 경우 ws.max_row가 0을 반환해 1행부터 데이터가 입력될 수 있습니다. 이 경우 코드 ⑤에서 기존 시트를 열 때 헤더가 없으면 추가하도록 아래 코드를 삽입하세요:

if ws.max_row == 1 and ws.cell(1, 1).value is None:
    ws.append(HEADERS)

오류 3: 한글이 깨져서 저장됨

openpyxl은 기본적으로 UTF-8을 사용하므로 한글 깨짐이 없습니다. 만약 깨진다면 코드 파일 자체의 인코딩이 UTF-8인지 확인하세요. 메모장으로 저장 시 인코딩을 반드시 UTF-8로 설정합니다.


응용: CSV나 다른 엑셀 파일에서 데이터를 읽어 자동 입력하기

코드 ②의 NEW_DATA를 직접 입력하는 대신, CSV나 다른 엑셀 파일에서 읽어와 자동으로 입력할 수 있습니다.

import pandas as pd

# CSV에서 읽기
SOURCE_CSV = r"C:\Users\내이름\Desktop\입력데이터.csv"
df = pd.read_csv(SOURCE_CSV, encoding="cp949")
NEW_DATA = df.to_dict(orient="records")

# 또는 다른 엑셀에서 읽기
SOURCE_XLSX = r"C:\Users\내이름\Desktop\원본데이터.xlsx"
df = pd.read_excel(SOURCE_XLSX, engine="openpyxl")
NEW_DATA = df.to_dict(orient="records")
💡 이전 게시글과 결합하면: 웹 데이터 자동 수집 편이나 주식·환율 자동 수집 편으로 수집한 데이터를 이 코드로 엑셀에 자동 입력하면, 데이터 수집부터 보고서 작성까지 완전 자동화 파이프라인을 완성할 수 있습니다.

핵심 요약

  • 준비물: Python + openpyxl + pandas 설치 (pip install openpyxl pandas)
  • 설정: OUTPUT_PATH, SHEET_NAME, NEW_DATA(입력할 데이터), HEADERS(열 이름) 수정
  • 실행: 터미널에서 python excel_input.py 입력
  • 결과: 지정한 셀에 데이터 자동 입력, 서식·색상·수식·열 너비 자동 적용, 기존 데이터 아래에 누적 추가

이 코드를 응용하면 조건부 서식, 차트 자동 삽입, 여러 시트에 동시 입력하는 것도 가능합니다.

이 블로그의 인기 게시물

느려진 구글 크롬 속도 2배 빨라지는 3가지 설정 방법 (2026년 최신 가이드)

카카오톡 용량 줄이기! 대화방 파일 삭제로 스마트폰 용량 확보법 (1분 해결)

업무 속도 3배 빨라지는 윈도우 기본 캡처 도구 단축키 및 200% 활용 꿀팁