Where manual uploading actually costs you
The cost is not the clicks — it is having to remember, every single time, which title and which tags belong to this clip. As volume grows, copy-paste errors appear and are hard to spot.
The second hidden cost is having no record. Which clips succeeded today, which failed, and why? By tomorrow nobody remembers, so the whole batch gets run again and duplicate content is created.
Start with one spreadsheet
Forget the tool for a moment: write one row per clip in a sheet. This is the only stage that needs human judgement; everything else should be repeatable execution.
A minimal column set:
- Video file: the local filename — the unique key between a row and a clip.
- Title: the caption shown after publishing, one clip per row, no merged cells.
- Keywords: the search terms that clip targets, using local terminology.
- Tags: content categories or campaign markers in a consistent format.
- Note: your own markers, e.g. missing cover, needs reshoot.
- Status: written back by the run, never guessed by hand — this prevents re-uploading successful clips.
Keep titles, tags and keywords separate
Titles are for humans, keywords map to search intent, tags are for your own classification. Mixing them makes later rewrites and performance analysis painful.
Practical rules: keep a recognisable product or topic in the title instead of stuffing keywords into a string; use official and local wording for keywords; maintain a fixed tag vocabulary instead of inventing a new tag per clip.
Schedule windows and per-video results
Spreading uploads across time windows is not just about avoiding bursts — it gives you room to intervene when a failure happens, instead of discovering it after the entire batch.
Every row should end up with a result: success or failure, the failure reason and the batch it belonged to. With those fields, "retry only the failures" becomes an action rather than a guess.
Retry failures, never the whole batch
This is the easiest rule to skip and the most common cause of duplicate content. After a failed run, pull the failed rows back into the sheet, fix them, resubmit those, and leave successful rows untouched.
If your tool has no per-item log, mark statuses manually in the sheet. The discipline matters more than the tool: a video that already succeeded should not run again.
Check these four things before automating
Do sheet columns map to tool columns, do filenames match exactly, are video specs already validated, and will failures be attributable to the right row? Bulk only makes sense once all four hold.
ShopeePilot works this way: import a list from CSV / Excel or a folder → select the rows to run in the web app → create a batch and run the queue on your own devices → write results back per clip → retry only failed items. It does not operate accounts, handle credentials, or guarantee traffic or earnings.