{
  "schemaVersion": 1,
  "productId": "product.downloader",
  "publicName": "3001 Downloader",
  "packageId": "kr.co.thousandone.downloader",
  "canonicalUrl": "https://downloader.3001.co.kr",
  "platform": "android",
  "channel": "stable",
  "stableVersion": "4.2.4",
  "releases": [
    {
      "versionName": "4.1.2",
      "versionCode": 21,
      "ruleVersion": "android-chromium-v4.1.2",
      "status": "superseded",
      "publishedUtc": "2026-07-31T07:43:54Z",
      "minimumAndroidSdk": 29,
      "targetAndroidSdk": 36,
      "minimumAndroid": "10",
      "abis": [
        "arm64-v8a"
      ],
      "signing": {
        "certificateSha256": "ea749414ca04c77fe11b87c4f142314481efcd16fab3789c185e3517b1ec708d",
        "publicKeySha256": "3db115f8732b7c5c21af397fa371e6369ff90678f4fe8d5ece3f6991b2917e87",
        "keyAlgorithm": "RSA",
        "keyBits": 4096,
        "schemes": [
          "v2"
        ]
      },
      "artifacts": {
        "apk": {
          "filename": "3001-downloader-4.1.2.apk",
          "bytes": 60715733,
          "sha256": "f9ebb13e2c670ecbb097fdd8db0d59e1266b463a29e3a088dd680470b891f2f9"
        },
        "source": {
          "filename": "3001-downloader-4.1.2-source.zip",
          "bytes": 3507819,
          "sha256": "76eb6c6b59abbdefa57ff1d89b26a2dc62e95766601b5ba6edb23ccf4ee6e5b1"
        }
      },
      "releaseNotes": [
        "H.264·AAC를 우선 선택하고 저장 전에 실제 트랙과 재생 시간을 검증",
        "호환되지 않는 WebM·HEVC·AV1 결과는 기기 안에서 H.264·AAC로 변환 후 재검증",
        "불완전하거나 손상된 결과는 다운로드 폴더에 게시하지 않도록 보호",
        "파일 기록을 닫은 뒤 MediaStore 게시를 완료하도록 저장 안정성 개선",
        "최근 저장 파일 열기 상태가 실패·취소 뒤에도 유지되도록 복구"
      ]
    },
    {
      "versionName": "4.2.0",
      "versionCode": 23,
      "ruleVersion": "android-chromium-recovery-v4.2.0",
      "status": "superseded",
      "publishedUtc": "2026-08-17T23:45:42Z",
      "minimumAndroidSdk": 29,
      "targetAndroidSdk": 36,
      "minimumAndroid": "10",
      "abis": [
        "arm64-v8a"
      ],
      "signing": {
        "certificateSha256": "ea749414ca04c77fe11b87c4f142314481efcd16fab3789c185e3517b1ec708d",
        "publicKeySha256": "3db115f8732b7c5c21af397fa371e6369ff90678f4fe8d5ece3f6991b2917e87",
        "keyAlgorithm": "RSA",
        "keyBits": 4096,
        "schemes": [
          "v2"
        ]
      },
      "artifacts": {
        "apk": {
          "filename": "3001-downloader-4.2.0.apk",
          "bytes": 38084079,
          "sha256": "0d39362472a44b0cfac6f351601ea2408f8fa46ce92a0014dd653bc5f14da6db"
        },
        "source": {
          "filename": "3001-downloader-4.2.0-source.zip",
          "bytes": 164617845,
          "sha256": "411fca8376b327c9ee445282489a826b776bfcd4162b8254616f7fb446ca90e4"
        }
      },
      "releaseNotes": [
        "광고 SDK·광고 식별자 권한·광고 및 동의 화면 제거",
        "중단된 다운로드 작업을 SQLite에 안전하게 보존하고 재개 또는 폐기 지원",
        "Android 15 미디어 처리 제한 시간과 포그라운드 서비스 복구 처리",
        "다운로드·변환·업데이트 전 공통 저장 공간 사전 점검 추가",
        "업데이트 APK의 크기·해시·패키지·버전·기존 서명 인증서를 설치 전에 검증"
      ]
    },
    {
      "versionName": "4.2.1",
      "versionCode": 24,
      "ruleVersion": "android-chromium-recovery-v4.2.1",
      "status": "superseded",
      "publishedUtc": "2026-08-20T07:11:19Z",
      "minimumAndroidSdk": 29,
      "targetAndroidSdk": 36,
      "minimumAndroid": "10",
      "abis": [
        "arm64-v8a"
      ],
      "signing": {
        "certificateSha256": "ea749414ca04c77fe11b87c4f142314481efcd16fab3789c185e3517b1ec708d",
        "publicKeySha256": "3db115f8732b7c5c21af397fa371e6369ff90678f4fe8d5ece3f6991b2917e87",
        "keyAlgorithm": "RSA",
        "keyBits": 4096,
        "schemes": [
          "v2"
        ]
      },
      "artifacts": {
        "apk": {
          "filename": "3001-downloader-4.2.1.apk",
          "bytes": 38088843,
          "sha256": "ef83afc970eb0a061ed6726fd3fa2310e9476499c5b048fd83407d40dd1ec2b7"
        },
        "source": {
          "filename": "3001-downloader-4.2.1-source.zip",
          "bytes": 164614048,
          "sha256": "cf854c8581036a074fcb9c1ce432b163f6b9adbdb5a771c4d99e00e25028e2cd"
        }
      },
      "releaseNotes": [
        "MP4 완성본에 영상과 오디오 트랙을 모두 요구해 무음 파일 게시 차단",
        "페이지와 캡처 후보를 함께 분석하고 결과 카드를 점진적으로 갱신",
        "회전과 추가 결과 도착 중에도 사용자의 탐색·선택 상태 유지",
        "묶음 전체 예상 용량을 반영한 저장 공간 사전 점검",
        "MediaStore 게시 중 종료 후에도 중복 파일 없이 복구"
      ]
    },
    {
      "versionName": "4.2.2",
      "versionCode": 25,
      "ruleVersion": "android-chromium-recovery-ads-v4.2.2",
      "status": "superseded",
      "publishedUtc": "2026-08-25T01:10:32Z",
      "minimumAndroidSdk": 29,
      "targetAndroidSdk": 36,
      "minimumAndroid": "10",
      "abis": [
        "arm64-v8a"
      ],
      "signing": {
        "certificateSha256": "ea749414ca04c77fe11b87c4f142314481efcd16fab3789c185e3517b1ec708d",
        "publicKeySha256": "3db115f8732b7c5c21af397fa371e6369ff90678f4fe8d5ece3f6991b2917e87",
        "keyAlgorithm": "RSA",
        "keyBits": 4096,
        "schemes": [
          "v2"
        ]
      },
      "artifacts": {
        "apk": {
          "filename": "3001-downloader-4.2.2.apk",
          "bytes": 51611290,
          "sha256": "5e885ed36abf2c157d05c3ac6aa5d78f9f1e4ccd13c14d4260cba0582fcf8809"
        },
        "source": {
          "filename": "3001-downloader-4.2.2-source.zip",
          "bytes": 165140298,
          "sha256": "bbf80dbd97a64e4c3544008452fbc53b542e6e0e2a99993ff76c86bb5781f024"
        }
      },
      "advertising": {
        "provider": "google-admob",
        "format": "interstitial",
        "consent": "google-ump",
        "minimumIntervalSeconds": 600
      },
      "releaseNotes": [
        "다운로드 확인 뒤에만 선택적으로 전면광고를 표시하고 광고 실패 시에도 다운로드 계속",
        "전면광고 실제 노출 후 최소 10분 동안 재노출 차단",
        "Google UMP 동의 상태에 따라 광고 요청을 허용하고 앱에서 개인정보 선택 변경 지원",
        "로컬 파일 변환에는 광고를 표시하지 않음",
        "Google Mobile Ads 및 광고 식별자 사용을 개인정보처리방침과 app-ads.txt에 동기화"
      ]
    },
    {
      "versionName": "4.2.3",
      "versionCode": 26,
      "ruleVersion": "android-chromium-recovery-ads-engine-refresh-v4.2.3",
      "status": "superseded",
      "publishedUtc": "2026-08-26T15:12:51Z",
      "minimumAndroidSdk": 29,
      "targetAndroidSdk": 36,
      "minimumAndroid": "10",
      "abis": [
        "arm64-v8a"
      ],
      "signing": {
        "certificateSha256": "ea749414ca04c77fe11b87c4f142314481efcd16fab3789c185e3517b1ec708d",
        "publicKeySha256": "3db115f8732b7c5c21af397fa371e6369ff90678f4fe8d5ece3f6991b2917e87",
        "keyAlgorithm": "RSA",
        "keyBits": 4096,
        "schemes": [
          "v2"
        ]
      },
      "artifacts": {
        "apk": {
          "filename": "3001-downloader-4.2.3.apk",
          "bytes": 51612226,
          "sha256": "a2747b72a041bcbf7f76ef843401e87ddf510dab4a5164748b8f3428b2ea4ab3"
        },
        "source": {
          "filename": "3001-downloader-4.2.3-source.zip",
          "bytes": 165224661,
          "sha256": "fd16b7766e0351edb949e0a9af83174059ab183b59c414e5e357901744653540"
        }
      },
      "advertising": {
        "provider": "google-admob",
        "format": "interstitial",
        "consent": "google-ump",
        "minimumIntervalSeconds": 600
      },
      "releaseNotes": [
        "YouTube 미디어 추출 엔진을 2026.08.19로 갱신해 미디어 URL의 HTTP 403 실패 수정",
        "일반 VOD, Shorts, 종료된 라이브·프리미어, 재생목록 단일 영상 각 10개 다운로드 검증",
        "MP4, MP3, M4A 실제 출력의 컨테이너·스트림 구조 검증",
        "모든 미디어 처리는 NAS 연결 없이 Android 기기 안에서 계속 수행"
      ]
    },
    {
      "versionName": "4.2.4",
      "versionCode": 27,
      "ruleVersion": "android-chromium-recovery-ads-engine-generic-media-v4.2.4",
      "status": "stable",
      "publishedUtc": "2026-08-27T02:02:27Z",
      "minimumAndroidSdk": 29,
      "targetAndroidSdk": 36,
      "minimumAndroid": "10",
      "abis": [
        "arm64-v8a"
      ],
      "signing": {
        "certificateSha256": "ea749414ca04c77fe11b87c4f142314481efcd16fab3789c185e3517b1ec708d",
        "publicKeySha256": "3db115f8732b7c5c21af397fa371e6369ff90678f4fe8d5ece3f6991b2917e87",
        "keyAlgorithm": "RSA",
        "keyBits": 4096,
        "schemes": [
          "v2"
        ]
      },
      "artifacts": {
        "apk": {
          "filename": "3001-downloader-4.2.4.apk",
          "bytes": 51615282,
          "sha256": "cb15efd85a493000f58c4806bc2d0c7628a3b163422798861999464c07fb591b"
        },
        "source": {
          "filename": "3001-downloader-4.2.4-source.zip",
          "bytes": 165228751,
          "sha256": "d0b170758f6e2bdc5e9c458e70edc55e95436aef8091220de3cdc462a1052175"
        }
      },
      "advertising": {
        "provider": "google-admob",
        "format": "interstitial",
        "consent": "google-ump",
        "minimumIntervalSeconds": 600
      },
      "releaseNotes": [
        "같은 공개 페이지 URL을 공유하는 여러 미디어를 각각 선택하고 정확히 한 항목만 다운로드",
        "재생목록 위치를 작업 DB와 재시도 전 과정에 보존하고 다중 출력의 임의 선택 차단",
        "YouTube 4분류 40건과 X 다중 미디어 4건의 MP4·MP3·M4A 실제 다운로드 검증",
        "사이트별 허용·차단 예외 없이 모든 공개 HTTP·HTTPS 페이지에 동일한 규칙 적용"
      ]
    }
  ]
}
