인스타그램 스토리 시간 순으로 다운로드

나는 인스타그램에 올리는 테니스 관련 영상 스토리를 하이라이트로 묶어서 개인 저장소로서 관리한다. 하이라이트를 쭉 넘겨보면서 내 테니스 여정을 볼 수 있는데 하이라이트에는 치명적 단점이 있다. 특정 구간으로 이동할 수가 없어서 처음 올린 것부터 쭉 넘겨봐야 된다는 것. 그래서 여태까지 올린 하이라이트를 다운받아서 하나의 영상으로 만드려고 한다.

크롬 익스텐션은 별로..

  • Downloader for Instagram™ - Download Reels, Story & Highlights
  • Fast save and repost for Instagram

크롬 웹 스토어에서 위와 같은 이름의 익스텐션을 써봤는데 영 마음에 들지 않는다. https://fbvideosaver.net/ 이런 웹 서비스도 있기는 한데 수백 개의 하이라이트 영상과 사진을 한 번에 다운로드할 수는 없었다. 대 AI 시대에 뭐하러 그럴 필요가 있나! 클로드로 ‘딸깍’ 만들면 된다. 아무리 봐도 SaaS는 죽어가는 게 맞는 것 같다… 생각해보니 다운로드한 영상과 사진을 하나의 영상으로 만드는 것도 AI로 금방 가능하겠다.

클로드로 딸깍!

Info

준비물 (prerequisites)

  • Python 3
  • Chrome 브라우저에 인스타그램 로그인된 상태

아래 내용도 굳이 직접 실행할 필요 없다. 복붙해서 클로드에게 던져 맡기면 된다.

패키지 설치

instaloader, browser-cookie3 가 필요하다. 인스타그램 로그인을 터미널 CLI에서 하면 캡챠(CAPTCHA)가 막기 때문에, 크롬의 쿠키를 활용한다.

$ pip install instaloader browser-cookie3

스크립트

아래 내용을 insta_highlight.py로 저장한다.

#!/usr/bin/env python3
import sys
import os
import browser_cookie3
import instaloader
 
if len(sys.argv) < 3:
  print("사용법: python3 insta_highlight.py <유저명> <하이라이트이름>")
  print("       python3 insta_highlight.py <유저명> --list  (목록 확인)")
  sys.exit(1)
 
username = sys.argv[1]
 
cj = browser_cookie3.chrome(domain_name='.instagram.com')
L = instaloader.Instaloader(
  save_metadata=False,
  download_video_thumbnails=False,
)
L.context._session.cookies.update(cj)
L.context.username = username
profile = instaloader.Profile.from_username(L.context, username)
 
if sys.argv[2] == "--list":
  for highlight in L.get_highlights(profile):
	  print(highlight.title)
  sys.exit(0)
 
target = sys.argv[2]
for highlight in L.get_highlights(profile):
  if highlight.title == target:
	  print(f"다운로드 중: {highlight.title}")
	  for item in highlight.get_items():
		  L.download_storyitem(item, highlight.title)
	  print("완료!")
	  sys.exit(0)
 
print(f"'{target}' 하이라이트를 찾지 못했습니다. --list로 목록을 확인하세요.")

스크립트 실행

  • 하이라이트 목록 확인 python3 insta_highlight.py <유저명> --list
  • 특정 하이라이트 다운로드 python3 insta_highlight.py <유저명> "🎾😈"

주의사항

macOS 기준이며, Windows/Linux는 browser_cookie3의 Chrome 쿠키 경로가 달라 동작이 다를 수 있습니다.