2026-09-09
56

코인충 스트리머 포지션 모니터링 반 자동화 구축완료

사실 이건 22년 말 ChatGPT-3.5가 나와 전세계를 충격에 빠뜨리기 전부터 했던 생각이었고, 이미 어느정도의 구조는 [gemini-1.5-flash 시절부터 해두긴 했었음.](https://blog.coinsect.io/posts/auto-parse-positions-with-google-gemini-flash) 이걸 결국 자동화를 못 해낸다면 [일일히 방송 보면서 모니터링해야하는데](https://coinsect.io/community/0djicoycSwWlJrdCBfeMzg), 도저히 내 인건비 생각하면 단가가 안 맞는 일이라 ㅠ.ㅠ 어쨌든 그때 구현해둔 건 "화면을 캡처해서 올리면 Gemini가 읽어준다"까지였는데, yt-dlp + ffmpeg 조합으로 유튜브 화면을 캡쳐떠서 자동으로 ai 돌리는 과정에서 의외로 어려운 건 **캡처** 부분이었음... EC2 등에서 yt-dlp를 시도하면 **봇 차단으로 막히는 경우가 대부분**이어서... 그래서 그냥 스크린샷은 내가 직접 찍어서 ai한테 넘겨주자 정도로 구현해뒀었고, 그나마 그당시 gemini는 그닥 성능이 높지 않아서, 그냥 화질이나 화면에 띄워진 값들의 위치같은게 좀 예쁜 상태일 때 잘 찍어서 넣어보면 '인식할 때도 있네?' 정도로 해둔 토이 상태로 몇 년이 지남. 근데 올해부터는 손코딩을 거의 전혀 안하고 100% 바이브코딩중이라, 이것도 한 번 좀 제대로 딸깍해보자는 생각이 들어서 손을 대봤음. 그래서 결국 출근할 때 집컴 켜두고 나가면 자동 포지션 수정이 되는 수준까지는 구축에 성공함! 좀 돌려보긴 해야하는데, 테스트런에서는 꽤나 만족스러움. 과정은 대략 1. 스트리머들 핸들을 미리 등록해두기 (ex: [@zzap9](https://www.youtube.com/@zzap9), [@852hodoo](https://www.youtube.com/@852hodoo)...) 2. 내 집컴은 코인충 서버에 등록된 핸들을 조회해서, 그들의 라이브스트림을 yt-dlp + ffmpeg으로 캡쳐해서 현재 포지션을 찍어옴 3. 스샷 성공하면 그걸 코인충 서버로 보내서 거기서 gemini 3.8 flash로 포지션 파싱 4. 서버는 그 결과를 코인충 슬랙으로 쏴서 나한테 "이거 맞냐?" 확인받음 5. 내가 승인 버튼 누르면 그대로 포지션 업데이트 이미 코인충에는 포지션 제보 기능이 있는데, 그걸 사람이 아니라 집컴이 스샷을 찍고 코인충 서버로 던져 AI가 자동으로 슬랙을 통해 내게 제보하는 경로를 추가로 파놓은 것. ![](https://d1085v6s0hknp1.cloudfront.net/boards/coinsect_blog/7222769f-04ad-4719-8034-e2fb81772a00_image.png) ## 라이브스트림 URL은 `/live` 하나로 끝남 내 기억에 처음에 이 아이디어 구현해보려 시도했을 때는 googleapis로 실시간 스트리밍 비디오 id를 조회해서 썼어야 했었는데, 지금은 그냥 아래처럼 핸들 뒤에 /live만 붙이면 됨 🤦‍♂️ ``` https://www.youtube.com/@zzap9/live ``` ## 모델 & 프롬프트 모델은 3.8 flash보다는 3.5 flash lite가 훨씬 쌌기 때문에 그걸 써보려고 했는데, 아무래도 싼 걸 감안하더라도 3.8 flash 대비 정확도가 다소 떨어져서 그냥 3.8로 결정. 3.5 flash lite도 BTC나 깔끔한 화면은 잘 잡는데, 티커가 특이한(ex: SOXLUSDT) 것들은 못 잡는 느낌. 그리고 3.8 flash는 `thinkingBudget: 0`으로 레벨을 줄여도 생각보다 잘 맞췄음. 이정도면 솔직히 인간이 봐도 인지하기 어려운 상황 아니고서야 실무적인 수준에선 엥간하면 맞추지 않을까 싶음 👍 ![](https://d1085v6s0hknp1.cloudfront.net/boards/coinsect_blog/0268adbe-fc91-4c92-9492-e8818c12da86_image.png) 100만 토큰당 입력 $0.75, 출력 $3.75 (올해까지만 프로모션, 내년부터 2배) ![](https://d1085v6s0hknp1.cloudfront.net/boards/coinsect_blog/8a9fe5d5-2848-44d6-8246-4e21871c6aec_image.png) 100만 토큰당 입력 $0.3, 출력 $2.5 프롬프트는 예전엔 뭐 '좌측 구석에 주로 포지션이 있고 BTC는 5자리 달러 가격이고...' 이런 걸 써놨었는데, 지금은 모델이 똑똑해져서 오히려 그런 박찬호식 TMI가 들어가면 혼란만 주며 방해하는 느낌이라 빼버렸음. ## 슬랙에서 골라서 승인 한 스트리머 당 복수의 포지션을 허용하는 UI로 바꾸려 하니, 슬랙에서도 체크박스로 맞는 것만 골라 승인할 수 있도록 UI도 바꿨음. 다행히 슬랙이 이런 형태를 잘 지원해줘서 간단히 구현 완료. ## 그 승인마저 건너뛰기 한동안 운영해보고, 슬랙에서 내가 대부분의 경우 그냥 승인만 누르고 있다는 걸 느끼게 되면 자동승인으로 돌릴 수 있게 코인충 서버 `.env`에 자동승인 플래그를 넣음. 이거 켜두면 슬랙에 승인/거절이 오는게 아니라 그냥 지가 알아서 판단해서 넣게 했음. 반면 오류가 많다 싶으면 여전히 지금처럼 직접 승인/거절하는 방식 유지! 근데 솔직히 이것만 해도 방송을 안 봐도 된다는 것 자체가 말도 안되게 편해진 거긴 함 ㅠ.ㅠ ## 켜놓고 출근하는 봇 모드 ![](https://d1085v6s0hknp1.cloudfront.net/boards/coinsect_blog/8b9f615b-ca58-4a23-af66-0dbf797f30fc_image.png) ![](https://d1085v6s0hknp1.cloudfront.net/boards/coinsect_blog/05933d13-7510-420a-a318-6235b27868d4_image.png) ## 봇 말고 일회성 cli로 쓸 때 ![](https://d1085v6s0hknp1.cloudfront.net/boards/coinsect_blog/db1e8b1c-754f-4ed9-90d5-8dfb6832ef0f_image.png) ![](https://d1085v6s0hknp1.cloudfront.net/boards/coinsect_blog/37360faf-e6df-434d-ac02-29270e41faa7_image.png) 슬랙으로 자동 승인(또는 승인/거절 선택지) 알림이 오고, 그 태스크에 토큰을 얼마나 태웠는지도 요약해서 보내게 했음. --- ## 요약 | | 2년 전 | 지금 | |---|---|---| | 캡처 | 내가 스샷 떠서 업로드 | 집 컴이 알아서 | | 모델 | Gemini 1.5 Flash | Gemini 3.8 Flash | | 포지션 | 스트리머당 1개 | 스트리머당 N개 | | 반영 | 어드민에 직접 입력 | 슬랙 버튼 (또는 자동) | | 비용 | 무료 티어 | 5분 간격으로 4명을 한 달 내내 추적해도 월 $50 언저리(아마 많이 튀면 $100 넘어갈 수도 있긴 할 듯), 한 시간 간격이면 $4 남짓 | 한창 [코인충](https://coinsect.io) 열심히 운영하던 시절 방송 네 개 띄워놓고 숫자 옮겨 적던 거 생각하면 진짜 세상이 너무너무 바뀜 😂
0
댓글 [0]