크리에이터가 같은 영상을 抖音, 小红书, 视频号, TikTok, YouTube, Bilibili에 올리는 일은 매일 반복되는 수작업이다. 각 플랫폼마다 로그인하고, 파일을 선택하고, 설명을 입력하고, 게시 버튼을 누른다—이걸 6번. dreammis/social-auto-upload는 이 반복을 하나의 Python 워크플로로 줄이겠다는 프로젝트다. 오늘 GitHub trending rank 17, 106 stars를 기록했다.
이 프로젝트를 단순한 'API 호출 묶음'으로 보면 설계의 핵심을 놓친다. 6개 플랫폼 중 절반—抖音(Douyin), 小红书, 视频号—은 외부 개발자에게 공개된 업로드 API 자체가 없다. 공식 경로로는 자동화가 불가능하다. 그래서 이 프로젝트는 Playwright를 사용해 실제 브라우저를 코드로 조작한다. 로그인 세션을 유지한 채 파일 업로드 버튼을 클릭하고, 텍스트 필드를 채우고, 게시 버튼을 누른다. 사람의 행동을 그대로 재현하는 방식이다.
YouTube와 Bilibili는 다른 경로를 탄다. 두 플랫폼 모두 외부 업로드를 위한 공식 API를 제공하기 때문에, 여기서는 API 호출 방식으로 처리한다. 같은 코드베이스 안에서 두 전략이 플랫폼의 성격에 따라 분기된다. 이 분기 자체가 이 레포의 실질적인 복잡도다.
브라우저 자동화 경로에는 구조적인 취약점이 따른다. 플랫폼이 UI를 업데이트하거나 DOM 셀렉터를 바꾸거나 봇 감지 레이어를 추가하면, 스크립트는 오류 메시지 없이 조용히 실패할 수 있다. API 기반 통합과 달리 플랫폼의 내부 변경을 사전에 감지할 방법이 없다. 오늘 잘 동작하던 抖音 업로드 스크립트가 내일 플랫폼 UI 패치 하나로 멈출 수 있다. 프로덕션에서 쓰려면 브라우저 자동화 플랫폼별로 별도의 헬스체크 루틴을 붙이는 게 현실적으로 필요하다. 완벽한 솔루션이 아니라, 지금 존재하는 가장 현실적인 선택지를 택한 것이다. 그리고 그 선택에 오늘 수백 명이 별을 눌렀다.