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

이미지
유튜브 채널 분석 자동화! 파이썬으로 영상 정보 자동 수집하기 (완성 코드 공개) "경쟁 채널의 인기 영상 제목과 조회수를 주기적으로 모니터링하고 싶다", "우리 채널 영상 목록을 엑셀로 정리해서 콘텐츠 현황을 파악하고 싶다", "특정 키워드로 검색되는 영상들의 조회수 추이를 추적하고 싶다"… 유튜브 스튜디오에서 데이터를 확인할 수 있지만 경쟁 채널을 비교하거나 이력을 누적 저장하기는 어렵습니다. 구글에서 제공하는 유튜브 데이터 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...

파일 이름 하나씩 바꾸는 시대 끝! 파이썬으로 파일명 일괄 변경하기

파일 이름 하나씩 바꾸는 시대 끝! 파이썬으로 파일명 일괄 변경하기 (완성 코드 공개)

파이썬으로 파일 이름을 일괄 자동 변경하는 모습


"IMG_0001.jpg, IMG_0002.jpg… 카메라에서 받은 사진 200장을 날짜별 이름으로 바꿔야 한다", "파일명에 '임시'라는 단어가 들어간 파일을 전부 '최종'으로 바꿔야 한다", "프로젝트 폴더 파일에 순번을 붙여서 정리하고 싶다"…

윈도우 탐색기에서 파일 이름을 F2로 하나씩 수정하는 방법은 수십 개만 되어도 한계가 있습니다. 파이썬을 한 번만 세팅해두면 폴더 안의 모든 파일에 원하는 규칙을 적용해 파일명을 한꺼번에 바꿀 수 있습니다. 실제 변경 전에 미리보기를 확인하는 안전 기능도 포함되어 있습니다.


1단계: 준비물 확인

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

이번 스크립트는 파이썬 기본 내장 라이브러리(pathlib, os, re)만 사용합니다. 별도 설치가 필요 없습니다.

💡 이 코드로 할 수 있는 것: 특정 단어 교체, 앞뒤에 텍스트 추가, 날짜·순번 자동 삽입, 공백을 언더스코어로 변환, 대소문자 통일 등 다양한 규칙을 조합해 파일명을 일괄 변경합니다. 실제 변경 전 미리보기로 결과를 먼저 확인할 수 있습니다.

2단계: 완성 코드

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

import re
from pathlib import Path
from datetime import datetime

# ① 설정
FOLDER_PATH = r"C:\Users\내이름\Desktop\파일모음"   # ← 변경할 파일이 있는 폴더
DRY_RUN     = True   # ← True: 미리보기만 (실제 변경 안 함) / False: 실제 변경 실행
EXTENSIONS  = []     # ← 특정 확장자만 처리 (예: [".jpg", ".png"]) 빈칸이면 전체

# ② 이름 변경 규칙 함수 (원하는 규칙만 주석 해제해서 사용)
def new_name(stem: str, suffix: str, index: int) -> str:
    """
    stem   : 확장자를 제외한 파일명
    suffix : 확장자 (예: .jpg)
    index  : 파일 순번 (0부터 시작)
    반환값 : 새 파일명 (확장자 포함)
    """

    # 규칙 1: 특정 단어 교체 ("임시" → "최종")
    stem = stem.replace("임시", "최종")

    # 규칙 2: 앞에 순번 추가 (예: 001_파일명.jpg)
    # stem = f"{index+1:03d}_{stem}"

    # 규칙 3: 앞에 오늘 날짜 추가 (예: 20260608_파일명.jpg)
    # today = datetime.now().strftime("%Y%m%d")
    # stem = f"{today}_{stem}"

    # 규칙 4: 공백을 언더스코어로 변환
    # stem = stem.replace(" ", "_")

    # 규칙 5: 소문자로 통일
    # stem = stem.lower()

    # 규칙 6: 정규식으로 숫자만 제거
    # stem = re.sub(r'\d+', '', stem).strip()

    return stem + suffix

# ③ 폴더 탐색 및 변경 실행
folder = Path(FOLDER_PATH)
files  = sorted([f for f in folder.iterdir()
                 if f.is_file() and
                 (not EXTENSIONS or f.suffix.lower() in EXTENSIONS)])

print(f"  📂 처리할 파일: {len(files)}개")
if DRY_RUN:
    print("  ⚠ [미리보기 모드] 실제 변경은 일어나지 않습니다.\n")

renamed = 0
skipped = 0

for i, file in enumerate(files):
    new  = new_name(file.stem, file.suffix, i)
    dest = file.parent / new

    if file.name == new:
        skipped += 1
        continue   # 변경 없으면 건너뜀

    if DRY_RUN:
        print(f"  {file.name}  →  {new}")
    else:
        if dest.exists():
            print(f"  ⚠ 건너뜀 (이름 충돌): {new}")
            skipped += 1
        else:
            file.rename(dest)
            print(f"  ✔ {file.name}  →  {new}")
            renamed += 1

if DRY_RUN:
    print(f"\n  미리보기 완료. 결과가 맞으면 DRY_RUN = False로 변경 후 다시 실행하세요.")
else:
    print(f"\n✅ 완료! 변경: {renamed}개 / 건너뜀: {skipped}개")

3단계: 실행 방법 (2단계 안전 프로세스)

파일명 변경은 되돌리기 어렵기 때문에 반드시 2단계로 나눠서 진행합니다.

  1. 코드 ① 설정의 FOLDER_PATH에 파일이 있는 폴더 경로를 입력합니다.
  2. 코드 ② 규칙 함수에서 원하는 규칙의 #을 삭제해 활성화합니다.
  3. DRY_RUN = True 상태로 먼저 실행합니다:
python rename_files.py

미리보기 결과가 맞으면 DRY_RUN = False로 바꾼 뒤 다시 실행합니다. 정상 실행 시 터미널에 이렇게 출력됩니다:

  📂 처리할 파일: 5개
  ⚠ [미리보기 모드] 실제 변경은 일어나지 않습니다.

  보고서_임시_v1.docx  →  보고서_최종_v1.docx
  계획서_임시.xlsx     →  계획서_최종.xlsx
  회의록_임시_0601.pdf →  회의록_최종_0601.pdf

  미리보기 완료. 결과가 맞으면 DRY_RUN = False로 변경 후 다시 실행하세요.

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

오류 1: 변경 후 원래 이름으로 되돌리고 싶음

파일명 변경은 되돌리기 기능이 없습니다. 반드시 DRY_RUN = True로 미리보기를 확인한 후 실행하세요. 중요한 파일이라면 변경 전 폴더 전체를 ZIP으로 백업해두는 것을 권장합니다. ZIP 자동 압축 편을 참고하세요.

오류 2: 이름 충돌 경고가 많이 뜸

변경 후 파일명이 같아지는 경우입니다. 예를 들어 "임시1.txt"와 "임시2.txt"를 동시에 "최종.txt"로 바꾸려 하면 충돌이 발생합니다. 규칙 2(순번 추가)를 함께 적용하면 충돌을 방지할 수 있습니다.

오류 3: 한글 파일명 처리 중 UnicodeError

파일명에 특수문자나 이모지가 포함된 경우입니다. 코드 저장 시 인코딩을 UTF-8로 설정했는지 확인하세요. 저장 시 인코딩 설정은 메모장 → 다른 이름으로 저장 → 인코딩: UTF-8 선택입니다.


응용: 사진 파일을 촬영 날짜 기준으로 이름 바꾸기

스마트폰·카메라 사진의 촬영 날짜를 파일명에 자동으로 넣는 방법입니다. 규칙 함수를 아래처럼 교체하세요.

import os

def new_name(stem: str, suffix: str, index: int) -> str:
    file_path = folder / (stem + suffix)
    # 파일 수정 날짜 기준으로 이름 생성
    mtime = os.path.getmtime(file_path)
    date_str = datetime.fromtimestamp(mtime).strftime("%Y%m%d_%H%M%S")
    return f"{date_str}_{index+1:03d}{suffix}"
💡 이전 게시글과 결합하면: 파일 키워드 자동 분류 편으로 파일을 폴더별로 정리한 뒤, 이 스크립트로 파일명을 통일된 규칙으로 변경하면 체계적인 파일 관리 시스템을 완성할 수 있습니다.

핵심 요약

  • 준비물: Python만 설치하면 됩니다. 별도 라이브러리 설치 불필요
  • 설정: FOLDER_PATH 입력 후 원하는 규칙의 주석 해제
  • 실행 순서: DRY_RUN = True로 미리보기 확인 → 결과 확인 후 DRY_RUN = False로 실제 변경
  • 결과: 지정한 규칙으로 파일명 일괄 변경, 이름 충돌 자동 감지, 변경 건수 출력

이 코드를 응용하면 정규식으로 복잡한 패턴의 파일명을 변경하거나, 여러 폴더를 한꺼번에 처리하는 것도 가능합니다.

이 블로그의 인기 게시물

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

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

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