-
692a824e78
fix: 목록 뽑기 — 주소 없는 영상 제외 + nocookie 도메인 인식
main
Claude (owner)
2026-06-14 01:55:33 +09:00
-
745b1db1cc
feat: 하위 폴더에 "목록 뽑기" 추가 (영상 ID + 실제 주소 txt 다운로드)
Claude (owner)
2026-06-14 01:50:54 +09:00
-
0abd21533b
fix: 동시 영상 처리 시 공유 임시파일 레이스 제거 (고유 tmp 경로)
codex/owner/make_video_site
Claude (owner)
2026-06-09 02:53:36 +09:00
-
584ec8b92b
fix: harden youtube retry against data corruption
Claude (owner)
2026-06-06 18:18:02 +09:00
-
6850313c0b
feat: 플레이리스트 실패 항목 재시도 버튼 + API
Claude (owner)
2026-06-06 18:11:59 +09:00
-
6ade552683
feat: 연령제한 영상용 YouTube 쿠키(cookies.txt) 등록 + yt-dlp --cookies 적용
Claude (owner)
2026-06-06 18:04:25 +09:00
-
03e97d771d
docs: 레거시 ID-only URL 문서/주석을 실제 동작에 맞게 정정
Claude (owner)
2026-06-06 16:37:59 +09:00
-
ff78b60a4b
fix: 레거시 ID-only URL 은 전역 유일할 때만 제공하고 정규 경로 충돌 제거
Claude (owner)
2026-06-06 16:33:54 +09:00
-
042d9f7059
feat: 플레이리스트 추가 화면 임시저장(draft) 기능
Claude (owner)
2026-06-06 16:22:42 +09:00
-
0ec6b06b57
feat: 영상 ID 를 폴더 안에서만 유일하게 (UNIQUE(folder_id, id))
Claude (owner)
2026-06-06 16:19:02 +09:00
-
66469ca418
fix(tools): ffmpeg 재설치도 실행 검증 후 원자적 교체
Claude (owner)
2026-06-05 16:05:44 +09:00
-
8ed3b7d82a
feat(tools): 관리자 화면에서 ffmpeg/yt-dlp 최신 버전 재설치
Claude (owner)
2026-06-05 16:02:25 +09:00
-
f9a26aaa86
feat(playlist): show download progress page after import instead of navigating away
Claude (owner)
2026-06-05 02:26:05 +09:00
-
e9924805cf
fix(playlist): make trim modal numeric input length-based not end-time
Claude (owner)
2026-06-03 21:35:35 +09:00
-
2f916fe958
feat(playlist): replace end-time inputs with play-length (default 15s)
Claude (owner)
2026-06-03 21:29:58 +09:00
-
7105349a45
feat(stream): canonical folder-path video file URL
Claude (owner)
2026-06-02 01:07:20 +09:00
-
34c040c15d
feat(playlist): per-entry/bulk trim, preview, and trim editor on import
Claude (owner)
2026-06-02 00:50:04 +09:00
-
066ae6b112
feat(thumbnails): generate and serve video thumbnails for folder cards
Claude (owner)
2026-06-02 00:41:06 +09:00
-
210787131b
관리자 폴더 카드 전체 영역 클릭 시 폴더 진입
Claude (owner)
2026-06-01 23:01:16 +09:00
-
0faf7af42a
feat(playlist): show thumbnails in import preview
Claude (owner)
2026-06-01 22:52:05 +09:00
-
0e39836c1f
feat(folders): allow videos in top-level folders too
Claude (owner)
2026-06-01 22:12:37 +09:00
-
ad42c88eaf
refactor(docker): simplify + optimize Dockerfile
Claude (owner)
2026-06-01 21:55:40 +09:00
-
8f72fcf4f9
fix(docker): bind to 0.0.0.0 so port mapping reaches the container
Claude (owner)
2026-06-01 21:43:48 +09:00
-
83b391c0a8
build: add Dockerfile that compiles better-sqlite3 in build stage
Claude (owner)
2026-06-01 21:39:53 +09:00
-
6eac31401a
docs(readme): fix two remaining mismatches with implementation
Claude (owner)
2026-06-01 10:51:51 +09:00
-
90e227d857
docs(readme): align with actual implementation
Claude (owner)
2026-06-01 10:50:05 +09:00
-
5693e1c6b0
refactor: dedupe encoder retry + collectFolderSegments + 3-probe → 1
Claude (owner)
2026-06-01 10:44:29 +09:00
-
4909d18493
fix(editor): per-job libx264 fallback when HW encoder fails at real encode (STEP B P1)
Claude (owner)
2026-06-01 10:15:56 +09:00
-
a0a094b517
perf(editor): pick hardware h264 encoder (nvenc/qsv/videotoolbox/vaapi) over libx264
Claude (owner)
2026-06-01 10:11:18 +09:00
-
ef65d6674f
fix(youtube): smooth download progress + post-process heartbeat
Claude (owner)
2026-06-01 10:04:48 +09:00
-
31c754a3ad
feat(playlist): import UI with drag reorder + random/sequential ID toggle (STEP 5)
Claude (owner)
2026-06-01 00:15:39 +09:00
-
36c9899040
fix(playlist): cap concurrent downloads (P1 review fix)
Claude (owner)
2026-06-01 00:07:42 +09:00
-
b0c15f49a4
feat(playlist): yt-dlp playlist probe + bulk start backend
Claude (owner)
2026-06-01 00:01:18 +09:00
-
652df2dbdb
fix(videos): reject bad-format id in idAvailable (P2 review fix)
Claude (owner)
2026-05-31 23:55:55 +09:00
-
55ce30733b
feat(videos): inline ID edit with live availability check
Claude (owner)
2026-05-31 23:51:18 +09:00
-
3089af1ad8
fix(folders): enforce videos-only at depth 2 (P1 review fix)
Claude
2026-05-31 23:43:24 +09:00
-
c5faa8808c
feat(folders): nested folder tree (max depth 2) + id-based mutations
Claude
2026-05-31 23:36:02 +09:00
-
3560dcb802
feat(db): introduce SQLite (better-sqlite3) backing store
Claude
2026-05-31 23:18:51 +09:00
-
958fc9da70
feat(import): cap downloaded video at FHD (1920x1080)
Claude
2026-05-16 03:48:35 +09:00
-
5728c42ab7
fix(import): ignore stale probe responses on URL change
Claude
2026-05-16 03:14:30 +09:00
-
33addb304a
fix(import): invalidate probe when URL input changes
Claude
2026-05-16 03:11:00 +09:00
-
11db6df8d2
fix(import): unbuffer yt-dlp progress, speed up 60fps via fps filter, lock probe btn
Claude
2026-05-16 03:07:47 +09:00
-
67d4fb89b8
fix(job-poll): disable caching and recover from fetch errors
Claude
2026-05-16 03:00:58 +09:00
-
cdf56b96b7
fix(youtube): split progress 0-50/50-99 and report ffmpeg conversion %
Claude
2026-05-16 02:57:33 +09:00
-
48f84963be
fix(editor): rename tmp before unlinking original in 60fps upscale
Claude
2026-05-16 02:42:59 +09:00
-
cdd23b8195
fix(youtube): upscale downloaded original to 60fps after yt-dlp finishes
Claude
2026-05-16 02:38:08 +09:00
-
105c5bf09d
feat(video): prefer max-fps source and bump edited output to 60fps
Claude
2026-05-16 02:33:37 +09:00
-
59f96a12a6
feat(routes): add short /file/video/:id alias for video stream
claude-bot
2026-05-15 21:58:37 +09:00
-
25a809546e
fix(setup): tolerate yt-dlp execve ENOENT on slim docker bases
claude-bot
2026-05-15 19:00:43 +09:00
-
6ee089b9b7
fix(folder): copy raw video stream URL instead of player page
claude-bot
2026-05-15 18:45:37 +09:00
-
51bf813ccc
feat(folder): right-click "영상 주소 복사" on public and admin
claude-bot
2026-05-15 18:42:49 +09:00
-
e77c18a83e
feat(op/folder): click video card to open inline player
claude-bot
2026-05-15 18:39:50 +09:00
-
db6fe6224d
fix(editor): handle loadedmetadata race so timeline shows duration
claude-bot
2026-05-15 18:35:10 +09:00
-
f587dce5ce
feat(editor): timeline scrubber with draggable trim handles
claude-bot
2026-05-15 18:31:07 +09:00
-
aae58f645a
fix: harden UPLOAD_MAX_BYTES parsing; sync docs with 1 GiB default
claude-bot
2026-05-15 18:10:27 +09:00
-
a14963e237
feat: cap upload size at 1 GiB by default (UPLOAD_MAX_BYTES override)
claude-bot
2026-05-15 18:06:21 +09:00
-
8de8bb982a
chore: drop Docker scaffolding (Dockerfile/compose/.dockerignore)
claude-bot
2026-05-15 17:57:45 +09:00
-
e4e697d287
feat: Docker support + .env-driven PORT/HOST config
claude-bot
2026-05-15 17:39:23 +09:00
-
cb9406d88e
feat: npm run setup (yt-dlp + deps + build); lift upload size limit
claude-bot
2026-05-15 17:13:47 +09:00
-
bb116f5c24
fix: hide modal/player overlays when hidden attr is set
claude-bot
2026-05-15 17:05:27 +09:00
-
3f4bcf52d0
fix: escape JSON in <script>; popup player picks edited if available
claude-bot
2026-05-15 16:49:03 +09:00
-
0db04cf5cd
feat: implement video site per README spec
claude-bot
2026-05-15 16:42:00 +09:00
-
8d13d155de
docs: expand README with project spec
claude-bot
2026-05-15 15:45:14 +09:00
-
b6a27c8128
docs: add README with project title
claude
2026-05-15 15:23:24 +09:00
-
7494879d9f
init make_video_site workspace
ejclaw
2026-05-15 15:17:26 +09:00