3 คะแนน โดย GN⁺ 2026-01-12 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เครื่องมือโอเพนซอร์สที่ช่วยให้สามารถดาวน์โหลดรูปภาพจากบัญชี iCloud ได้โดยตรงผ่านบรรทัดคำสั่ง
  • รองรับการทำงานบนระบบปฏิบัติการหลักอย่าง Linux, Windows, macOS และรองรับการติดตั้งผ่าน Docker·PyPI·AUR·npm
  • ทำงานได้ 3 โหมดคือ Copy·Sync·Move พร้อมความสามารถในการจัดการ Live Photos·ภาพ RAW·ข้อมูลเมตา EXIF
  • มีตัวเลือกหลากหลาย เช่น ลบข้อมูลซ้ำอัตโนมัติ, เฝ้าติดตามการเปลี่ยนแปลงอย่างต่อเนื่อง, ปรับแต่งประสิทธิภาพสำหรับการทำงานแบบ incremental
  • เผยแพร่ภายใต้ MIT License และขณะนี้กำลังมองหา ผู้ดูแลโปรเจกต์ (maintainer)

ภาพรวมของโปรเจกต์

  • iCloud Photos Downloader เป็นเครื่องมือแบบบรรทัดคำสั่งสำหรับดาวน์โหลดรูปภาพที่เก็บอยู่ใน iCloud ลงสู่ระบบภายในเครื่อง
    • สามารถดาวน์โหลดรูปภาพทั้งหมดจาก iCloud หรือซิงก์เฉพาะส่วนที่มีการเปลี่ยนแปลงได้
    • พัฒนาและดูแลโดยชุมชนอาสาสมัคร และกำลังเปิดรับผู้ร่วมพัฒนาใหม่
  • แจกจ่ายภายใต้ MIT License จึงสามารถใช้งานและแก้ไขได้อย่างอิสระ
  • บน GitHub มี star มากกว่า 10k และ fork 705 รายการ

แพลตฟอร์มที่รองรับและวิธีเผยแพร่

  • ความเข้ากันได้ของระบบปฏิบัติการ: รองรับ Linux, Windows, macOS และสภาพแวดล้อม NAS
  • ช่องทางการแจกจ่าย:
    • อิมเมจ Docker
    • แพ็กเกจ PyPI
    • Arch Linux AUR
    • แพ็กเกจ npm
  • สามารถดาวน์โหลดไฟล์รันโดยตรง หรือบิลด์จากซอร์สโค้ดได้

ฟีเจอร์หลัก

  • โหมดการทำงาน 3 แบบ
    • Copy: ดาวน์โหลดเฉพาะรูปใหม่ (โหมดเริ่มต้น)
    • Sync: ลบรูปในเครื่องเมื่อรูปนั้นถูกลบจาก iCloud (--auto-delete)
    • Move: ลบรูปออกจาก iCloud หลังดาวน์โหลด (--keep-icloud-recent-days)
  • รูปแบบที่รองรับ: Live Photos (บันทึกภาพและวิดีโอแยกกัน), RAW และ RAW+JPEG
  • ตัวเลือกการทำงาน
    • ลบข้อมูลซ้ำอัตโนมัติสำหรับรูปที่มีชื่อเดียวกัน
    • โหมดเฝ้าติดตามอย่างต่อเนื่อง (--watch-with-interval)
    • ปรับแต่งประสิทธิภาพสำหรับการทำงานแบบ incremental (--until-found, --recent)
    • แก้ไขข้อมูลเมตา EXIF (--set-exif-datetime)
  • สามารถดูตัวเลือกทั้งหมดได้ด้วยคำสั่ง --help

การติดตั้งและการใช้งาน

  • วิธีติดตั้ง
    1. ดาวน์โหลดไฟล์รันจากหน้า GitHub Releases
    2. ติดตั้งผ่าน package manager (Docker, PyPI, AUR, npm)
    3. บิลด์จากซอร์สโค้ดโดยตรง
  • ข้อกำหนดการตั้งค่า iCloud
    • เปิดใช้งาน Access iCloud Data on the Web บน iPhone/iPad
    • ต้องปิด Advanced Data Protection
  • ตัวอย่างการใช้งาน
    • รันการซิงก์:
      icloudpd --directory /data --username my@email.address --watch-with-interval 3600
      
    • สร้างเซสชันสำหรับยืนยันตัวตน:
      icloudpd --username my@email.address --password my_password --auth-only
      

ฟีเจอร์ทดลองและสถานะการพัฒนา

  • บางฟีเจอร์จะถูกเพิ่มเข้ามาในรูปแบบ Experimental Mode ก่อน เพื่อทดสอบและตรวจสอบ แล้วจึงนำไปรวมเป็นฟีเจอร์ทางการ
  • รีลีสล่าสุดคือ v1.32.2 (2 กันยายน 2025)
  • ตั้งเป้าออกเวอร์ชันใหม่ สัปดาห์ละครั้ง (วันศุกร์)
  • คอมมิตล่าสุดมีการเพิ่ม รองรับการตั้งค่าหลายผู้ใช้, แก้ไขบิลด์ที่ไม่ใช่ลินุกซ์, ปรับปรุงสภาพแวดล้อมทดสอบ เป็นต้น

การมีส่วนร่วมและชุมชน

  • นักพัฒนาภายนอกสามารถเข้าร่วมได้ผ่าน แนวทางการมีส่วนร่วม (CONTRIBUTING.md)
  • มี ผู้มีส่วนร่วม 42 คน ที่ร่วมพัฒนาโค้ด และมีการใช้เครื่องมืออัตโนมัติอย่าง Dependabot
  • ขณะนี้กำลังเปิดรับผู้ดูแลโปรเจกต์อย่างเป็นทางการ
  • เอกสารอย่างเป็นทางการและการพูดคุยอยู่ที่ GitHub Discussions

1 ความคิดเห็น

 
GN⁺ 2026-01-12
ความเห็นจาก Hacker News
  • ฉันเป็นผู้สร้าง Photos Backup Anywhere สิ่งที่ทำให้ฉันประหลาดใจตอนวิเคราะห์ Apple Photos คือ แค่ไฟล์บนดิสก์อย่างเดียวไม่สามารถแทนสถานะทั้งหมดได้
    อัลบั้ม, Live Photos, ภาพถ่ายต่อเนื่อง, สโลว์โมชั่น, ประวัติการแก้ไข, การแก้ไขวันที่ถ่าย ฯลฯ ถูกจัดการแยกต่างหาก และเครื่องมือสำรองข้อมูลส่วนใหญ่ก็ไม่สามารถประกอบสิ่งเหล่านี้กลับมาได้อย่างถูกต้องตอนกู้คืน
    เพราะแบบนั้นฉันจึงมอง Photos เองว่าเป็น แหล่งข้อมูลจริง (source of truth) และเลือกวิธีตรวจสอบโดยอิงจากสิ่งนี้ตอนกู้คืน
    เครื่องมือนี้กู้คืนอัลบั้มและรูปภาพทุกประเภทได้ครบถ้วน พร้อมคงตำแหน่ง วันที่สร้าง และวันที่แก้ไขไว้
    หน้าโปรเจ็กต์อยู่ที่ photosbackup.app

    • ตอนฉันย้ายรูปจาก iPhone จะใช้แอป ‘Image Capture’ คัดลอกเป็นช่วง 0~9999 พอเกิน 10,000 รูป ชื่อไฟล์จะกลับไปเป็น 00001(1) ทำให้ลำบากมาก
      MacBook มี SSD เล็ก และฉันก็ไม่อยากผ่าน iCloud เลยสงสัยว่ามีวิธีส่งออก ต้นฉบับ RAW/JPEG/Live/Video ไปยังไดรฟ์ภายนอกโดยตรงไหม
    • ฉันเคยมีประสบการณ์ที่ เหมือนฝันร้าย มากในการดึงรูปจากโทรศัพท์ Android เครื่องเก่า ถ้าอินเทอร์เฟซไม่ขึ้นอย่างถูกต้อง ก็ต้องพึ่งเครื่องมือที่ไล่กวาดทั้งไดรฟ์
    • อยากทราบว่ารองรับการสำรองข้อมูลไปยัง สตอเรจที่เข้ากันได้กับ S3 (เช่น Backblaze B2) หรือไม่
    • เคยดู Parachute Backup หรือยัง? ฝั่งนั้นก็อ้างว่าสามารถสำรองข้อมูลที่ซับซ้อนของ iPhotos ได้ด้วย
  • โปรเจ็กต์นี้เจ๋งมาก อาจใช้แทนแอป iCloud สำหรับ Windows ได้ก็ได้
    ฉันเองก็มีข้อมูลใน iCloud ราว 2TB แต่ MacBook ความจุไม่พอ เลยแยก Photo Library ไว้บนไดรฟ์ภายนอก
    แอป iCloud สำหรับ Windows เหมือนจะดาวน์โหลดอยู่ที่ 50MB/s ตลอด แต่พอเปิดโฟลเดอร์เข้าไป ส่วนใหญ่ยังเป็นสถานะ ‘ใช้งานได้เฉพาะออนไลน์’
    ตอนนี้ดาวน์โหลดมาได้ประมาณ 944GB แล้ว แต่กว่าจะเสร็จทั้งหมดคงต้องใช้เวลาอีกพอสมควร
    สงสัยว่าบน Windows มี โปรแกรมดูรูปทางเลือก ที่แสดง HEIC และ Live Photo ได้ดีหรือไม่

  • มีโปรแกรมเสียเงินสำหรับ macOS ชื่อ Parachute สามารถดาวน์โหลดทั้งรูปภาพและไฟล์ทั้งหมดจาก iCloud library ได้
    ลิงก์ App Store

    • บน iOS, PhotoSync ก็โอเคเหมือนกัน สามารถส่งรูปไปยัง NAS หรือบริการระยะไกลอย่าง B2 ได้
    • Parachute เวอร์ชันเดสก์ท็อปเสถียรดี แต่เวอร์ชัน iOS ไม่สามารถทำ incremental backup ของไลบรารี 1TB ให้เสร็จข้ามคืนได้
      มันส่งออกไฟล์ต้นฉบับ แต่ไม่รวมไฟล์ AAE ขณะที่ PhotoSync ก็น่าเสียดายที่ไม่มีฟังก์ชันกู้คืน
    • ฉันเคยถามว่ารองรับบัญชี ADP หรือไม่ แต่ไม่ได้รับคำตอบ เลยอยากรู้เหมือนกันว่ามีโซลูชันดาวน์โหลดที่ใช้ได้กับบัญชี ADP ไหม
    • อยากรู้ด้วยว่าสามารถ ตรวจสอบความปลอดภัยด้านความเป็นส่วนตัว ได้หรือไม่ และมีตัวเลือกทดแทนสำหรับ Windows ไหม
  • น่าแปลกที่ไม่มีวิธีทางการสำหรับดาวน์โหลดรูปทั้งหมดจาก iCloud (ประมาณ 400GB) ในครั้งเดียว
    แต่กลับมี เครื่องมือบรรทัดคำสั่ง แบบโอเพนซอร์สที่ดึงรูป iCloud ทั้งหมดได้

    • ที่จริงบน Mac หรือ iPhone ถ้าเลือก ‘ดาวน์โหลดต้นฉบับ’ ในการตั้งค่า iCloud Photo Library ก็สามารถดาวน์โหลดทั้งหมดได้
    • ถ้าเป็นผู้ใช้ในสหภาพยุโรป สามารถขอข้อมูลทั้งหมดที่ Apple เก็บไว้ได้ที่ privacy.apple.com
    • ในแอป Photos บน Mac สามารถส่งออกต้นฉบับได้ด้วย Cmd+A > File > Export Unmodified Originals
    • อาจเป็นเจตนาของ Apple ที่ไม่อยากให้ผู้ใช้ย้ายออก การทำให้ย้ายรูปยากดูเหมือนเป็น กลยุทธ์ lock-in
  • เมื่อไม่กี่วันก่อนฉันสำรอง Shared Library โดยจัดการกับรูปและวิดีโอประมาณ 10K รายการ (300GB)
    กู้คืน iPhoto library → ส่งออกแยกตามปี → ย้ายไป external HDD → ตั้งไลบรารีบน external HDD เป็นค่าเริ่มต้น แล้วซิงก์กับ iCloud ใหม่
    การเชื่อมต่ออีเธอร์เน็ตแบบมีสายและฟังก์ชัน Repair ช่วยได้มาก

    • สงสัยว่ามันต่างจากการย้ายไฟล์ Photos Library ไปยัง external HDD แล้วชี้ Photos.app ไปที่พาธนั้นอย่างไร
  • ฉันใช้ชุด usbmuxd + ifuse เพื่อคัดลอกไฟล์รูปจาก iPhone โดยตรง
    ไม่ต้องรอคิวอัปโหลดหรือดาวน์โหลด เชื่อมต่อผ่านสายแล้วดึงไฟล์ต้นฉบับได้เลย แถมยังย้ายออกเพื่อ เพิ่มพื้นที่ว่าง ได้ด้วย

    • สงสัยว่าวิธีนี้ทำได้กับ iPhone ทุกเครื่องไหม สามารถเมานต์โฟลเดอร์ DCIM ผ่าน USB และได้สิทธิ์เขียนด้วยหรือเปล่า
  • ฉันใช้ เชลล์สคริปต์ เล็ก ๆ ดาวน์โหลดรูปจาก iCloud เป็นระยะ
    ใช้คอนเทนเนอร์ icloudpd/icloudpd:latest เพื่อเก็บไฟล์ต้นฉบับตามโครงสร้างโฟลเดอร์

    • แต่การใช้ แท็ก latest ตรง ๆ อันตรายเกินไป ไม่ควรส่งข้อมูลรับรอง iCloud ให้กับอิมเมจที่ยังไม่ได้ตรวจสอบ ควรปักไว้กับเวอร์ชันหรือแฮชที่เจาะจงจะปลอดภัยกว่า
  • ครอบครัวเราสร้างมีเดียประมาณ 2TB ต่อปี รวมทั้งหมดราว 12TB
    ฟีเจอร์ Memories ของ iCloud นั้นดี แต่ค่าใช้จ่ายเดือนละ 60 ดอลลาร์หนักเกินไป เลยทำแบบนี้

    • ใช้ docker-icloudpd สำรองรูปจากหลายบัญชีลง local storage
    • เก็บไว้ใน iCloud แค่ 2 ปีล่าสุด ส่วนที่เก่ากว่านั้นเก็บไว้ในเครื่อง
    • ใช้ Immich สำหรับเรียกดูและค้นหารูปเก่า แม้จะ self-hosted แต่ประสบการณ์ใช้งานแอปดีมาก
      ดิสก์ local ที่เร็ว (เช่น OWC 4M2 + M.2 SSD) สำคัญมาก ส่วน NAS ที่ใช้ HDD นั้นช้า
      ลิงก์ GitHub ของ docker-icloudpd
    • อยากรู้ว่าฟีเจอร์ที่ใช้ใน Photos มีอะไรที่ Immich ยังไม่มีไหม ฉันใช้ Android เลยพอใจกับ Immich อย่างเดียวอยู่แล้ว
  • ใน iCloud Photos.app รูปบางรูปไม่แสดง แต่ใน Photometor.app (ของ Apple) กลับเห็น
    ไม่รู้ว่าทำไมถึงไม่ขึ้นใน Photos.app เลยน่าหงุดหงิดมาก

  • น่าเสียดายที่ Apple แทบไม่เปิดให้มี การเชื่อมต่อกับ third-party
    ฉันอยากซิงก์รูปจากอัลบั้มบางอันไปยังกรอบรูปของพ่อแม่หรือ Samsung Frame TV แบบอัตโนมัติ แต่ฟังก์ชันแบบนี้กลับถูกปิดกั้นไว้
    แค่เปิดเพิ่มอีกนิดเดียวก็น่าจะทำให้เกิด การใช้งานที่สร้างสรรค์ ได้มาก

    • ฉันแก้ปัญหานี้ด้วย PhotoSync โดยตั้งกฎซิงก์ตามอัลบั้มเพื่อส่งอัตโนมัติ