빠델라 이미지 수집기 — 출처 각인 도구
인스타/사이트/블로그 이미지를 주제별로 수집하고, 출처를 사진 자체(EXIF·IPTC·XMP)에 각인해 서비스에 안전하게 쓰는 도구. padella.crowny.org:9874 통합.
핵심 = 한선씨 엔진
/Users/ef/crowny-padella/이미지수집기.한선 (→ .toau) — 한선씨가 주체:
- og:image / twitter:image 추출: 페이지면
체계(curl|tr|grep|sed)로 추출(한선씨 65535 문자열 cap 회피 위해 shell 오프로드), 직링크(.jpg/.png/.webp)면 그대로. - 다운로드: 정직한 UA
PadellaBot/1.0 (+https://padella.crowny.org)(위장 금지 — 연구 권고), Referer 세팅. - 출처 각인(exiftool): IPTC(Credit/Source/CopyrightNotice/Keywords/Caption/SpecialInstructions=허가) + XMP-dc(Source/Rights/Subject) + EXIF(Artist/Copyright/ImageDescription).
-IPTC:CodedCharacterSet=UTF8로 한글 보존. - 파일링:
public/images/<토픽>/<id>.jpg+ 사이드카.json(provenance) +index.psv. - 인자는 환경변수(URL/TOPIC/CREDIT/PAGEURL/PERMISSION). 셸 인젝션 방지
안전()필터.
exiftool -charset iptc=utf8). 컴파일·실행 OK.서버 통합 (server.js)
| Method | Path | 설명 |
|---|---|---|
| POST | /api/images/capture | 한선씨 엔진 spawn(execFile crownyc) — 도메인별 레이트리밋 |
| GET | /api/images?topic= | 전체 목록(관리) |
| GET | /api/images/public?topic= | 허가된 이미지만(자체촬영/허락받음/CC) — 공개 안전 |
| GET | /api/images/topics | 토픽별 카운트 |
| DELETE | /api/images/:id | 삭제(저작권 삭제요청 즉시 대응) |
| (정적) | /images/<토픽>/<file> | 디코딩+경로이탈 방지 수정 |
decodeURIComponent+normalize 경로이탈 차단.UI
/gallery(gallery.html) — 관리자 캡처/브라우즈: URL+토픽+출처명+허가 선택(자체촬영/허락받음/CC/출처표기/미확인), 토픽 필터, 경로복사, 원본링크, 삭제. 저작권 경고 배너 상단 고정.- 공개 사이트 index.html
갤러리섹션 —/api/images/public(허가만) 표시, 없으면 자동 숨김. 나폴리 톤.
저작권 안전 설계 (딥리서치 4에이전트 반영)
- 출처표기 ≠ 면죄부. 식당 홍보=상업적 사용→공정이용(저작권법 제35조) 불가. 무단 사용 1장도 최대 500만원 벌금.
- 자체촬영·허락받은 이미지 우선(자체 50%+). 타인 이미지는 DM/메일 허락+기록.
- 허가 등급으로 공개 게이트: 미확인/출처표기 이미지는 공개 갤러리 제외(내부 참고용). 자체/허락/CC만 노출.
- 삭제요청 즉시 대응(🗑 DELETE). UI 경고 배너 상시.
- 인스타 2026 웹스크래핑 차단(datacenter IP/TLS 핑거프린팅/doc_id 로테이션) → 공개 og:image만 시도 가능, 직링크·허락 권장.
빌드 방식
울트라 린 워크플로(하이쿠 4에이전트 234K토큰): 스크래핑 기법/메타데이터 표준(IPTC·XMP·C2PA)/저작권윤리 딥리서치→오푸스 종합. 코어 한선씨·서버·UI·검증은 메인. 레이트리밋 관리=저동시성 워크플로+도메인 지연.잔여
- JSON-LD/srcset 추출 미구현(og:image 우선이라 대부분 커버). 동적렌더(CSR) 페이지 og 누락 가능.
- 가시 워터마크 미적용(메타데이터 각인만 — PIL 12.2 가용, 필요시 추가).
- 캡처/삭제 API 무인증(내부 도구) — 필요시 패밀리 패스코드 게이트.
- SNS 업로드 시 메타데이터 제거됨(원본 서버 보유). C2PA Content Credentials 미래 옵션.
2026-06-14 추가: 가시 워터마크 + CIF 정본
워터마크: 브라우저 canvas로 출처(ⓒ <출처> · padella)를 사진 하단에 그라데이션 바로 각인 — 설치 불필요(브라우저 네이티브).
CIF 정본화: 캡처 jpg → canvas(≤512, 워터마크) → 픽셀 base64 → padella /api/images/cif 프록시 → crowny-image(image.crowny.org:9872) /encode → CIF v3(트릿트리) 저장, 출처는 CIF 헤더(생성자/서비스출처)에 네이티브. exiftool 불필요(정본=CIF).
- 표시:
/cif/:id→ crowny-image/png/:id렌더(브라우저 PNG, 같은 출처 프록시). index.psv 8번째 필드 cifId,display=cifId면 /cif/ 아니면 /images/. - 그레이스풀: crowny-image 미가동 시 캡처는 jpg로 남고 CIF만 스킵(명확한 안내).
한선씨 전용 진행도 (정직)
- ✅ 코어 수집 = 이미지수집기.한선. CIF 코덱/서버 = crowny-image(한선씨 이미지서버.한선 + JS codec). 워터마크 = 브라우저 canvas(무설치).
- ⚠️ 잔여 외부: curl(OS빌트인 네트워크), exiftool(brew설치 — CIF 정본화로 이제 선택). og:image 추출이 shell(grep/sed) — 한선씨 문자열화 여지. HTTPS 페치를 TLS.한선/소켓으로 한선씨화 가능(미적용).
- CIF는 image.crowny.org가 가동돼야 함(별도 서비스/도메인).
2026-06-14 병행: exiftool 제거 + og추출 한선씨화 + 브라우저 시각검증
Track A — 한선씨 전용 강화
- exiftool 완전 제거: 출처는 CIF 헤더(생성자/서비스출처) + 워터마크 + 사이드카로 일원화. 도구
체계()호출은 curl·mkdir·printf(전부 OS 빌트인)뿐, brew설치 의존 0. - og:image 추출 한선씨화: shell grep/sed 제거 →
og이미지추출(html)한선씨 함수. curl로 HTML 앞 60000B만 저장(읽기() 16383자 한계 내 og 위치), 전방 윈도(키~키+400)에서content="파싱. 함정: ①읽기() 16383자 캡 ②윈도를 og:image 앞까지 잡으면 직전 메타 content= 오인(전방 윈도로 수정) ③포함()==0 pos0 버그→부분() 비교. - 잔여: HTTPS 페치 curl(OS빌트인). 순수 한선씨 HTTPS는 TLS 아웃바운드 클라이언트 부재(HTTP클라이언트.한선=평문만)로 추후 과제.
--headless=new --screenshot으로 gallery cifConvert 흐름 실행 → 실브라우저에서 canvas 워터마크+픽셀화+CIF(씨앗 46351) 성공, 스크린샷 육안 확인.- 결과: ①워터마크(
ⓒ 위키미디어 · padella)가 사진 하단에 선명 ②/cif/:id렌더에도 워터마크 보존(트릿트리 재구성). 512×340.
2026-06-14 진행: HTTPS 페치 한선씨화 (네이티브 TLS 발견)
핵심 발견: crownyc VM에 네이티브 TLS 빌트인(opcode 800~803 TLS연결/쓰기/읽기/닫기, crowny_tls_connect via macOS Security.framework, crownyc가 -framework Security로 빌드됨)이 있다. 즉 curl/openssl 없이 한선씨만으로 HTTPS 가능(VM 런타임=한선씨의 일부, 외부 설치 프로그램 아님).
증명됨(end-to-end): TLS연결→TLS쓰기→TLS읽기로 실제 HTTPS에 200 OK 수신, 헤더경계(CRLFCRLF) 검출, 본문→파일 쓰기 동작(2011B 파일 생성 확인).
한선씨 함정 4종 회피(검증):
"\r"가 0x0D로 컴파일 안 됨 → CRLF=글자변환(13)+글자변환(10).- 읽기 16383·문자열 65535 캡 → 본문 청크 스트리밍 파일 덧쓰기(누적 금지).
- EOF 블로킹 → Content-Length 바운드 읽기.
- 예약어
반복→횟수.
한선씨HTTPS.한선(컴파일 OK) — HTTPS파일받기(호스트,경로,파일), URL분해, 길이추출. 학습 등록됨.정직한 남은 하드닝(다음 단계, 미완):
- 3xx 리다이렉트 추종(Location) — wikimedia 등이 리다이렉트해 첫 테스트가 HTML 수신.
Transfer-Encoding: chunked디청킹.- 대형 바이너리 안전성 최종검증(현재 HTML 텍스트로만 왕복 확인).
- 위 완료 후
이미지수집기.한선의 curl 2곳(페이지 fetch·이미지 download)을한선씨HTTPS.한선으로 교체 → curl 완전 제거.
2026-06-14 (이어서): 리다이렉트 추종 + 바이너리 안전성 결론
한선씨HTTPS.한선 v2 — HTTPS다운로드(url,파일) 리다이렉트 추종(최대5회, Location 절대/상대), HTTPS요청이 "코드\|받음\|위치" 문자열 반환(혼합배열 회피), 상태코드/Location/Content-Length 파싱.
검증(curl 대조):
- ✅ 텍스트 byte-perfect: github raw README 3662B를 curl과 바이트 완전동일 다운로드(cmp 통과). 리다이렉트 추종·Content-Length 스트리밍 정상.
- ✅ 상태코드 정확: -404/-400을 curl과 동일하게 리포트.
- ❌ 바이너리 잘림: git.png 9208B→4113B. 근본원인 규명: crownyc.c TLS_READ는
str_new(rbuf, rd)로 길이안전(바이너리 보존)이나, 이후 한선씨 문자열연산(글자수/부분/+/덧쓰기)이 널종단(strlen) → 0x00 바이트에서 truncate. HTML 등 텍스트(널 없음)는 정상.
결론 & 남은 1단계:
- HTTPS 페치를 순수 한선씨로 = 텍스트 완전 달성(네이티브 TLS, curl과 동일).
- 바이너리 blob(이미지)는 한선씨 문자열 널종단 한계로 미달 → crownyc.c에 길이기반 TLS→파일 빌트인(TLS파일받기) 1개 추가하면 우회 가능(VM C 변경+재빌드 필요, 별도 작업).
- 현 프로덕션 수집기: 안정성 위해 curl 유지(텍스트 og fetch도 일부 호스트 reset 대비).
한선씨HTTPS.한선은 검증된 네이티브 라이브러리로 보존, 빌트인 추가 후 결선.
2026-06-14 (완료): 순수 한선씨 바이너리 HTTPS — curl 완전 제거
crownyc VM 코어 픽스 2건(생태계 전체 TLS에 이로움):
tls_read_cb부분수신 버그 수정(crowny_tls.c) — 근본원인. read() 한 번으로 부분 수신을 noErr 반환 → SSLRead 레코드 프레이밍 깨져 바이너리 truncate. 요청 길이까지 read() 루프(블로킹 소켓, EINTR 재시도)로 수정. git.png 2742→9208B.crowny_tls_readwouldblock 재시도(crowny_tls.c) — errSSLWouldBlock+rd==0(미도착)을 0(EOF)로 오인하던 것 → usleep 재시도.
TLS본문저장(opcode 806, arity 3)(crownyc.c + hanseonc_high.c): TLS본문저장(핸들,경로,최대) — C에서 HTTP 헤더 스킵(\r\n\r\n)+상태파싱+2xx 본문을 파일에 직접 fwrite(바이너리 안전). 한선씨 문자열 널종단 우회. 반환=본문바이트(2xx)/음수상태.한선씨HTTPS.한선 완성: HTTPS다운로드(url,파일) = 리다이렉트 추종(HTTPS위치로 Location 해석) + TLS본문저장 바이너리 다운로드. curl과 byte/md5 완전동일(git.png 9208B 검증).
이미지수집기.한선 curl 완전 제거: 페이지 fetch·이미지 download 모두 HTTPS다운로드(네이티브 TLS). 체계()는 mkdir/printf만. 서버 경유 캡처 9208B 정확 검증.
빌드: cc -O2 -o crownyc crownyc.c -lm -framework Security -framework CoreFoundation + cc -O2 -o hanseonc_high hanseonc_high.c -lm. 백업 crownyc.bak.before806. 회귀 OK.
의의: "모든 설치 프로그램 한선씨 전용" — 이미지수집기의 외부 설치 의존(curl/exiftool) 0 달성. 네트워크=VM 네이티브 TLS(한선씨 런타임). 단, 일부 HTML 호스트는 봇 UA에 4xx/reset 가능(이미지 CDN은 광범위 동작).
잔여(다음 단계): 빠델라 완성도↑(Framer 디자인 폴리시) + 프레이머 대체 크라우니 웹퍼블리싱 도구(publishing.crowny.org:9890). 딥리서치 완료(컴포넌트트리 JSON·6컴포넌트·에디터·정적익스포트·게이트웨이 퍼블리시).