IMGLAB Weibo Downloader — User Guide
User Guide & Help Center

Download Every Weibo
Image & Video

Complete walkthrough — from install to advanced downloads. A red Download button is injected automatically into every post on weibo.com and s.weibo.com search results.

2
SUPPORTED PAGES
4
MEDIA TYPES
100%
ORIGINAL QUALITY
0
SIGN-UP REQUIRED
1 Getting Started

Install in 60 Seconds

IMGLAB Weibo Downloader is a Chrome extension. Follow these steps and you’ll be downloading Weibo images and videos in under a minute.

01
Add to Chrome from the Web Store

Click Add to Chrome — Free on the product page. Chrome will prompt for confirmation — click Add extension. The IMGLAB icon ⚡ appears in your Chrome toolbar. No sign-up, no account, no payment required.

⚠️ If the toolbar icon isn’t visible, click the puzzle piece 🧩 in the Chrome toolbar and pin IMGLAB Weibo Image & Video Downloader so it’s always accessible.
02
Open Chrome Extensions Page

Type the following in Chrome’s address bar and press Enter:

chrome://extensions/

This opens the Extensions management page. Toggle Developer mode ON using the switch in the top-right corner. The “Load unpacked” button will appear.

💡 Developer mode is completely safe. It simply allows loading extensions from local folders rather than only from the Chrome Web Store.
03
Load the Extension Folder

Click “Load unpacked”. A folder picker opens. Navigate to and select the folder you unzipped in Step 1 — the folder that contains the manifest.json file. Chrome will load the extension immediately and IMGLAB Weibo Downloader will appear in your extensions list.

💡 If the toolbar icon isn’t visible, click the puzzle piece 🧩 in the Chrome toolbar and pin IMGLAB Weibo Downloader so it’s always accessible.
04
Log In to Weibo

Open weibo.com in Chrome and log in to your Weibo account. The extension uses your existing session cookies to authenticate downloads. It never stores or transmits your credentials.

⚠️ If you are not logged in to Weibo, the API will return 401 Unauthorized or an empty response. If downloads are not working, always check your login status first.
05
Take Your First Download

Navigate to weibo.com. As you scroll the feed, a red “Download” button will appear automatically on every post card that contains images or videos. Click it to download all media in that post at once.

To download a single image, hover over any thumbnail — a small circular badge will appear. Click it to save just that image. Files are saved to Downloads/weibo/{username}/.

💡 The same buttons appear on s.weibo.com search results. When using the search page, you must have at least one weibo.com tab open — see Section 3 for details.
🔄
Updating the Extension: When a new version is available, replace the files in your extension folder with the new ones. Then open chrome://extensions/ and click the ↺ refresh icon on the IMGLAB card. Your settings are preserved automatically.
2 How To Use

Download Methods

The extension offers two download methods: bulk download for an entire post, and individual download for a single image.

Method A — Bulk Download
“Download” Footer Button
For: all media in a post — images and videos

A red “Download” button appears in each post card’s footer action bar — beside the retweet, comment, and like buttons. Click it to download all images and videos in that post in sequence.

For M3U8 videos, the button label updates to show segment progress (e.g. "32/96 segs"). When complete it changes to “N files ✓”.

Method B — Single Image Download
Thumbnail Circle Badge
For: one specific image only

A small circular download badge appears in the top-right corner of each image thumbnail (revealed on hover, click to download instantly). Perfect when you only want one specific image without downloading the entire post.

A larger badge also appears in the inline lightbox viewer when you expand an image — it downloads whichever image is currently displayed and persists through left/right navigation.

⚠️
s.weibo.com search page requirement: When downloading from Weibo search results, the same browser must have at least one weibo.com tab open. This is a fundamental constraint of Chrome’s MV3 extension model. No extra setup is needed on weibo.com itself.

Button & Badge States

Idle

Ready to download. The footer button shows “Download”. The thumbnail badge is a semi-transparent circle that glows red on hover.

Downloading

Fetching API data or downloading files. The footer button is greyed out and shows “Downloading…” (or segment progress for M3U8 videos). Badges show a spinner animation. Cannot be re-clicked during this state.

Done

Download successful. The footer button turns green and shows “N files ✓”. On future visits the button shows grey “Downloaded ✓” — the download history tracking feature.

Error

Download failed. The footer button turns red and shows an error message. Badges show a red error icon — click to retry. The most common causes are a Weibo session expiry or a network error.

📊
Check stats in the popup: Click the extension icon in your Chrome toolbar to open the popup. It shows your total downloaded count and this session’s count. The “Clear Download History” button resets all history and stats.
3 How It Works

Technical Architecture

A technical explanation of why this extension works where other tools fail. Understanding how Weibo’s authentication is handled will also help with troubleshooting when something goes wrong.

1
Button Injection via MutationObserver

A MutationObserver watches Weibo’s DOM and detects every new post card added — catching infinite-scroll loads, navigation events, and dynamically injected content. A dataset.imglabInjected flag prevents double-injection. Separate injection logic handles the different DOM structures of weibo.com and s.weibo.com.

2
Post Data Fetch — Weibo API

Clicking the button calls GET weibo.com/ajax/statuses/show?id={postId} with your session cookies and X-XSRF-TOKEN header. On weibo.com this is a direct same-origin fetch. On s.weibo.com, chrome.scripting.executeScript injects code into an open weibo.com tab that makes the API call instead — the only reliable way to pass Weibo’s Sec-Fetch-Site validation.

3
Media URL Resolution & Quality Selection

Images are resolved to the /large/ CDN path for full original resolution. Videos are resolved through a 6-step priority chain: TV API (4K)playback_list HDmp4_hd_urlstream_url_hdstream_urlreplay_hd. M3U8 master playlists are parsed by BANDWIDTH= value and the highest-bitrate stream is selected automatically.

4
Blob Fetch via withCredentials XHR

Image fetching on weibo.com uses XMLHttpRequest + withCredentials: true from the content script. Because the content script runs in the page’s own browsing context, the correct Sec-Fetch-Site header and session cookies are automatically attached — exactly what Weibo’s sinaimg.cn CDN requires. The same request sent from a background Service Worker returns 403. This is why most competing tools fail.

5
CORS Bypass for s.weibo.com

sinaimg.cn returns Access-Control-Allow-Origin: https://weibo.com, so XHR from an s.weibo.com content script is blocked by a CORS origin mismatch. The fix: chrome.scripting.executeScript injects code into a weibo.com tab that fetches the blob, encodes it as Base64 in 8 KB chunks, and returns it to the content script. The content script reconstructs the blob and triggers the download.

6
File Save via blob: URL + onDeterminingFilename

The fetched blob is converted to a blob: URL via URL.createObjectURL(blob) — never a data: URL — and passed to chrome.downloads.download(). Only blob URLs trigger the onDeterminingFilename event, which is the only reliable way to apply a custom filename like weibo/{username}/{filename} in MV3. With data: URLs this event never fires and Chrome falls back to a generic default name.

🗂️
postDataCache prevents redundant API calls: Clicking multiple badges on the same post only triggers one API call. The fetched data is cached in memory for the page session, so subsequent clicks on the same post respond instantly.
4 Supported Content

Supported Content Types

Almost every type of media Weibo can display can be downloaded. Below is a technical breakdown of how each content type is handled.

Content TypeStatusTechnical Detail
Standard image posts (up to 9) ✅ Supported All images via pic_infos — original /large/ resolution
Mixed image + video posts ✅ Supported Each entry in mix_media_info.items handled individually
Standalone video posts ✅ Supported Via page_info.media_info + 6-tier quality priority chain
Live Photos (animated) ✅ Supported JPEG still + video track from pic.video both saved
Weibo TV / HLS (long-form video) ✅ Supported M3U8 segment stitching · 5-concurrent TaskQueue · master playlist support
Live stream recordings ✅ Supported Uses replay_hd field when object_type === 'live'
Retweeted posts ✅ Supported Media from retweeted_status · retweeter’s comment used as filename slug
s.weibo.com search results ✅ Supported Via executeScript relay · one weibo.com tab must be open
Inline lightbox viewer ✅ Supported Supported on both weibo.com and s.weibo.com · persists through left/right navigation
Hashtag-only posts ✅ Supported Hashtag used directly in filename (# is valid on Windows & macOS)

Filename Naming Rules

1
Priority 1: Post prose text

URLs, hashtags, and @mentions are stripped from the post text — the first 30 characters are used. Example: username-post-caption-text-01.jpg

2
Priority 2: Hashtag text

If the post body is empty or symbols-only, the hashtag text is used as-is. # is a valid filename character on Windows and macOS. Example: username-#tagA##tagB#-01.jpg

3
Priority 3 (final fallback): Post ID

If no text can be extracted, the post ID is used. Always unique and always traceable back to the original Weibo post. Example: username-5079341827654-01.jpg

5 Limitations

Known Limitations

The limitations below are real and acknowledged. Most are caused by Chrome’s MV3 security architecture, Weibo’s authentication system, or deliberate Weibo platform design decisions. Each is documented so you know exactly what to expect and why.
🔑
Weibo Login Required
REQUIRED

The extension uses your Weibo session cookies and XSRF token to call the API. While logged out, the API returns 401 Forbidden or an empty response and all downloads will fail.

Fix: Open weibo.com and log in to your Weibo account.
🌐
s.weibo.com Requires a weibo.com Tab
S.WEIBO.COM ONLY

When using s.weibo.com, the same browser must have at least one weibo.com tab open. This is a fundamental constraint of Chrome’s MV3 model — the extension must run code inside an actual weibo.com page context to make authenticated requests to weibo.com.

Fix: Open a weibo.com tab before using s.weibo.com.
🎬
Some Video Paths Are Not Fully Tested
REAL-WORLD TESTING RECOMMENDED

The M3U8/HLS stitching, 4K TV API, master playlist quality selection, and live stream archive code are all implemented, but not every video format has been fully tested in the real world. If a video does not download as expected, check the console logs.

Check console logs prefixed with [IMGLAB Weibo] to identify which stage is failing.
Large M3U8 Videos Take Time
EXPECTED BEHAVIOUR

M3U8 videos require downloading many .ts segment files and stitching them together, so they take longer than direct MP4 downloads. Downloads run 5-concurrent, but long-form videos with 100+ segments may take several minutes. Live progress is shown in the button label (e.g. 32/96 segs).

Do not re-click the button while downloading. As long as progress is displayed in the label, it is working normally.
🔄
Weibo Site Changes May Break Things
ONGOING MAINTENANCE

Weibo periodically changes their DOM structure, CDN policies, and API response format. These changes can cause buttons to stop appearing or downloads to fail. Such issues are typically fixed in extension updates.

Update the extension to the latest version. If the problem persists, report it via the support page.
🚫
Button Not Appearing on Some Posts
OCCASIONAL

When a post card’s DOM structure differs due to Weibo A/B testing or regional variations, the injection selector may not match and the button will not appear. Video-only posts in particular can have different footer structures.

Try reloading the page or testing on a different post. If it occurs consistently, please report it with console error logs attached.
💡
Debugging tip: When something goes wrong, open the browser’s DevTools (F12) Console tab and look for logs prefixed with [IMGLAB Weibo]. API responses, download list contents, and detailed error messages are all logged there.
6 Support

Support & Donations

FREE · OPEN · COMMUNITY-SUPPORTED

This Extension
Lives on Your Support

IMGLAB Weibo Downloader is and will remain completely free — no ads, no subscriptions, no data collection. Every feature you see — M3U8 stitching, s.weibo.com support, live photo downloads — took real debugging time to get right against Weibo’s authentication system.

🐛 Keeping up with Weibo DOM changes and CDN policy updates
🌱 New features: bulk download manager, video quality selector UI, Firefox port
🧪 Testing edge cases — retweeted videos, live events, regional CDN differences
🔧 Keeping pace as Weibo and Chrome continuously update their APIs

We’ll be direct: Weibo changes their CDN and API frequently. Keeping the extension working requires ongoing maintenance, and that work depends on community support. If you’ve saved images or videos you care about — a one-time coffee is the best way to keep this project alive.

Troubleshooting
Download button doesn’t appear
First check that you are logged in to Weibo. If you are, try reloading the page or check the browser console for [IMGLAB Weibo] errors.
Shows “Error” and download fails
Most commonly a Weibo session expiry. Re-open weibo.com, confirm you are still logged in, then retry.
Downloads fail on s.weibo.com
You need a weibo.com tab open in the same browser window. Open weibo.com in another tab and retry.
Video download appears to stall
M3U8 videos take time because many segments must be stitched together. As long as progress is showing in the button label it is working. If it truly stalls, reload the page and retry.
Filename shows “unknown”
If neither post text nor hashtags could be extracted, the post ID is used as the filename. This is the expected fallback behaviour. The file is saved correctly.
Something else isn’t working
Send a message on Ko-fi or BMC with the site URL and console logs attached. User reports directly drive which issues get prioritised in future updates.