인스타그램 스토리 시간 순으로 다운로드
나는 인스타그램에 올리는 테니스 관련 영상 스토리를 하이라이트로 묶어서 개인 저장소로서 관리한다. 하이라이트를 쭉 넘겨보면서 내 테니스 여정을 볼 수 있는데 하이라이트에는 치명적 단점이 있다. 특정 구간으로 이동할 수가 없어서 처음 올린 것부터 쭉 넘겨봐야 된다는 것. 그래서 여태까지 올린 하이라이트를 다운받아서 하나의 영상으로 만드려고 한다.
크롬 익스텐션은 별로..
- 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 쿠키 경로가 달라 동작이 다를 수 있습니다.