Skip to content

Releases: thedevmark/auto-iphone-uploader

Auto iPhone Uploader 1.0 RC 6

Choose a tag to compare

@thedevmark thedevmark released this 02 Oct 04:11

Post finished videos from your Windows PC through the real iPhone apps: YouTube Shorts, Instagram Reels via Edits' 4K export with Facebook and Threads crossposts, and TikTok.

Install: download AutoiPhoneUploader-Setup-v1.0.0-rc.6.exe below and run it. Python comes bundled. Windows SmartScreen may say "unrecognized app" because the installer is not code-signed yet: click More info → Run anyway. The zip + PowerShell route still works (see the README).

Fixed

  • The Windows installer is attached (rc.5's build stopped on Python 3.14's Tcl/Tk 9 files).
  • No accessibility reads on any playing screen: the video guard now covers TikTok, YouTube, Instagram, Edits, Threads and Facebook; YouTube's playing screens are read with Windows OCR; unlock() no longer queries the front app on a playing screen.

🛡 VirusTotal GitHub Action analysis:

Auto iPhone Uploader 1.0 RC 4

Choose a tag to compare

@thedevmark thedevmark released this 01 Oct 08:14

Post finished videos from your Windows PC through the real iPhone apps: YouTube Shorts (title, description, first-frame thumbnail), Instagram Reels via Edits' 4K export with Facebook and Threads crossposts, and TikTok. Post now, or schedule into YouTube's and Instagram's own schedulers.

Install: download the zip below, unzip it, and run one command in PowerShell from that folder (see the README). Verify the download.

Fixed

  • The iPhone passcode is kept encrypted at rest with Windows DPAPI
    (PHONE_PASSCODE_DPAPI, readable only by your Windows account on this PC);
    scripts\set_passcode.py removes a plain-text line. Run it once to
    encrypt a passcode saved by an earlier version.
  • install_windows.ps1 -CheckOnly exits 0 when it reports steps still to do,
    so the release build no longer stops on a clean machine (rc.3 published no
    download for this reason).

Also in this release (from rc.3)

Added

  • Remove the video from the iPhone after it posts. Posts save nothing to
    Photos, but every Instagram post leaves an Edits project holding the clip
    (often over a gigabyte). Once Instagram confirms the post, that one project
    moves to Edits' Trash, where it can still be restored. It is matched exactly
    (new since the upload, still "Untitled project", young enough); anything
    ambiguous leaves Edits alone. Setting on by default.
  • A calm first-run setup. Five screens, one task each, that advance by
    themselves; commands sit in copyable console blocks behind "Show me how";
    optional items moved to Extras in Settings. System, light and dark
    theme toggle.
  • One-command install with numbered progress, plain messages, a fix for
    every failure, and optional prompts for the passcode and the USB recovery
    helper (now recommended rather than required).
  • One owner of the iPhone at a time. Every phone flow holds a lock, so a
    script run by hand, a slot post and a receipt read can never drive the
    phone together; a lock left by a crashed run is ignored.
  • YouTube's hidden detail rows are read with Windows' built-in OCR.
    YouTube 21.38 draws Description, Paid promotion and "AI use, Tags" but
    leaves them out of the accessibility tree; the YouTube runner now finds them
    in a screenshot with Windows.Media.Ocr (offline, no model,
    video_drop/ocr/), taps the one exact match and proves the tap by the
    screen that opens. A label that is missing or appears twice stops the run.
    Multi-line descriptions are typed line by line and read back. New checklist
    row: Screen text reader (Windows OCR).
  • Receipts read on their own. In the hour after a final tap the app
    looks at the phone up to four times (3, 10, 25 and 55 minutes, read-only;
    a missed look is skipped, never caught up in a burst) and records the
    Instagram and Threads receipts the profile proves, so those destinations
    turn posted with no click. It stands down while another phone action,
    a link problem or a held phone lock is in the way. New setting: Check
    each post in the apps afterwards
    (on by default).
  • Instagram switches to the release's account by itself. When Instagram
    is on another signed-in account, the runner opens Instagram's own account
    switcher, picks the exact handle (never a prefix match) and reads the
    profile header again before the Edits export; a switch that does not land
    stops the run with nothing posted.
  • USB pipe-stall recovery. When WebDriverAgent and lockdown both stop
    answering while Windows still lists the phone, the link supervisor names it
    a pipe stall (video_drop/pipe_stall.py), skips the Home press and walks a
    ladder: wait, restart Apple Mobile Device Service, restart the iPhone's USB
    device node, each verified by lockdown answering again, and only then asks
    for a replug. Each step's outcome and seconds are logged.
  • USB recovery helper for the two privileged ladder steps:
    scripts\install_windows.ps1 -InstallUsbHelper registers an on-demand
    SYSTEM scheduled task (one UAC prompt) that can only restart Apple Mobile
    Device Service or the iPhone's USB node; -UninstallUsbHelper removes it.
    The app itself never runs elevated. Design and threat model:
    docs/usb-recovery-helper.md.
  • Checklist rows: USB recovery helper installed; iPhone USB path (warns
    about an AMD chipset controller or a hub between the phone and the PC);
    iPhone charging over USB (warns when the phone drains while plugged in or
    the battery is low).
  • scripts/set_passcode.py saves PHONE_PASSCODE into .env from a hidden
    prompt and never prints it.

Fixed

  • Screenshots fall back to WebDriverAgent's screenshot when go-ios's
    screenshot service on the phone stops answering, instead of stopping the
    run.
  • A clip in a cloud folder reached through a short (8.3) or junction path is
    recognised as inside that folder.
  • numpy is listed as a runtime dependency.
  • Instagram's account check closes a story the app reopened on.
  • Receipts: the Instagram receipt taps the Profile tab a second time
    (two seconds apart, never a double tap) so a profile reopened mid-scroll
    shows its post count again; the Threads receipt reads Threads' new "Threads
    tab" / "Replies tab" labels and accepts a caption whose hashtags Threads
    folded, only as that exact fold of the approved caption.
  • Focus: a Focus menu left open by an earlier run is closed with a tap on
    empty space (Home leaves it up) before Control Center is read; Control
    Center is read at full depth again so the Focus module is found; an active
    Focus that already silences the phone (for example a Streaming Focus) is
    left untouched; the owner's Focus is remembered for 10 minutes so one Post
    now reads it once.
  • YouTube: the audience picker is skipped when YouTube already remembers
    "not made for kids"; visibility is confirmed from the picker's own radio
    when the details row is stale; the share sheet gets up to 15 s to show the
    file size before it is judged.
  • Phone link: the driver refuses an accessibility snapshot while a video
    app is visibly playing (the read that stalled the USB pipe) and the flows
    read pixels there instead: TikTok waits out its playing editor by pixels
    before reading the post screen, Instagram's cover proof and Edits' segment
    check read go-ios pixels, and leaving a playing app goes to the Home Screen
    through go-ios without asking WebDriverAgent; the supervisor retries its status-file replace
    when a reader holds the file open on Windows; the link experiment keeps
    recording through a phone error; a power warning is logged when the phone
    drains while reported as charging.
  • Every runner checks the source file against the same database it loaded
    the release from.

Changed

  • The test suite never reads the owner's real .env (VIDEO_DROP_ENV_FILE),
    and pytest.ini limits collection to tests/.

🛡 VirusTotal GitHub Action analysis:

Auto iPhone Uploader 1.0 RC 5

Pre-release

Choose a tag to compare

@thedevmark thedevmark released this 01 Oct 21:59

Superseded by v1.0.0-rc.6: this candidate's installer build failed, so no Setup.exe is attached. Use rc.6.

Auto iPhone Uploader 1.0 RC 3

Pre-release

Choose a tag to compare

@thedevmark thedevmark released this 01 Oct 07:58

Superseded by v1.0.0-rc.4: this candidate's build stopped before attaching a download. Use rc.4.

v0.1.0 — early preview

Pre-release

Choose a tag to compare

@thedevmark thedevmark released this 29 Sep 20:34
3fbcd58

First public preview. Works today: import and review video text, Threads Post now from the iPhone. YouTube Post now is built but not yet proven on a live phone. Scheduling and Instagram/TikTok/Facebook posting are not connected yet.

Download auto-iphone-uploader-v0.1.0.zip below (built by GitHub Actions from this tag, not the 'Source code' links) and see SECURITY.md for what it does on your phone and how to verify the zip.

VirusTotal: 0 of 65 engines flagged this zip (sha256 c4ae924bcd67620b0248bd3a628f42fc9e7e28496058e6066dfd3640743b8f6b).

🛡 VirusTotal GitHub Action analysis: