iawia002/lux · error
lux doesn't support this URL right now
Error message
lux doesn't support this URL right now
What it means
tumblrVideoDownload grabs the first <iframe src='...'> in the Tumblr post HTML and expects it to be a tumblr.com/video embed. If the first iframe points anywhere else — a third-party player like YouTube/Vimeo, or an unrelated embed — lux reports that it does not support this URL. It is a scope statement, not a network failure.
Source
Thrown at extractors/tumblr/tumblr.go:111
{
Site: "Tumblr tumblr.com",
Title: title,
Type: extractors.DataTypeImage,
Streams: streams,
URL: url,
},
}, nil
}
func tumblrVideoDownload(url, html, title string) ([]*extractors.Data, error) {
videoURLs := utils.MatchOneOf(html, `<iframe src='(.+?)'`)
if videoURLs == nil || len(videoURLs) < 2 {
return nil, errors.WithStack(extractors.ErrURLParseFailed)
}
videoURL := videoURLs[1]
if !strings.Contains(videoURL, "tumblr.com/video") {
return nil, errors.New("lux doesn't support this URL right now")
}
videoHTML, err := request.Get(videoURL, url, nil)
if err != nil {
return nil, errors.WithStack(err)
}
realURLs := utils.MatchOneOf(videoHTML, `source src="(.+?)"`)
if realURLs == nil || len(realURLs) < 2 {
return nil, errors.WithStack(extractors.ErrURLParseFailed)
}
realURL := realURLs[1]
urlData, size, err := genURLData(realURL, url)
if err != nil {
return nil, errors.WithStack(err)
}
streams := map[string]*extractors.Stream{
"default": {View on GitHub (pinned to dd00f6d258)
Solutions
- Confirm the post actually hosts a native Tumblr video (view-source: the iframe src should contain 'tumblr.com/video')
- For third-party embeds, extract the inner URL and hand it to the matching extractor (youtube, vimeo, ...)
- Use the Tumblr API (api.tumblr.com/v2/blog/.../posts) which returns a direct video_url or permalink to the native player
- Patch the matcher in extractors/tumblr/tumblr.go to iterate all iframes and pick the tumblr.com/video one instead of taking the first
Example fix
// before
videoURLs := utils.MatchOneOf(html, `<iframe src='(.+?)'`)
videoURL := videoURLs[1]
if !strings.Contains(videoURL, "tumblr.com/video") {
return nil, errors.New("lux doesn't support this URL right now")
}
// after (look specifically for the native player iframe)
videoURLs := utils.MatchOneOf(html, `<iframe src='(https?://[^']+?tumblr\.com/video/[^']+)'`)
if videoURLs == nil || len(videoURLs) < 2 {
return nil, errors.New("no native tumblr video iframe found (third-party embed?")
}
videoURL := videoURLs[1] Defensive patterns
Strategy: try-catch
Try / catch
_, err := tumblr.Extract(url, opts)
if err != nil {
if strings.Contains(err.Error(), "lux doesn't support this URL right now") {
// third-party embed, not a native tumblr video
// extract the inner iframe URL and route it to the right extractor
}
return err
} Prevention
- Prefer native Tumblr video posts; route embedded YouTube/Vimeo links to their own extractors
- Use the Tumblr API to obtain direct video_url when scraping fails
- Do not retry this error — it is a support-scope statement, not a transient failure
When it happens
Trigger: Extracting a Tumblr post whose video is a reblogged third-party embed (iframe src on youtube.com/embed, player.vimeo.com, etc.), or whose theme markup puts a non-video iframe before the native player iframe.
Common situations: Posts that embed YouTube/Vimeo rather than native Tumblr video; theme templates that inject widget iframes; native videos served via <video> tags without the classic iframe fallback.
AI-assisted analysis of iawia002/lux@dd00f6d258 (2026-08-15).
Data as JSON: /api/errors/73b65c3139e3bd0c.
Report an issue: GitHub.