conceptualspace / yet-another-speed-dial

a modern speed dial for chrome, edge and firefox
Other
168 stars 31 forks source link

[Feature Request] Option to use Opera Speed Dial API to fetch speed dial thumbnail images #107

Open Darthagnon opened 2 months ago

Darthagnon commented 2 months ago

Opera browser uses an API to fetch thumbnails for the Opera Speed Dial new tab page. I imagine it is more or less undocumented and internal, but here's some info I've been able to glean:

What Opera fetches

C:\Users\Darthagnon\AppData\Roaming\Opera Software\Opera Stable\suggestions_cache.json:

{
    "suggestions": [{
            "history_patterns": [],
            "partner_id": "gog_row_suggestions",
            "ping_url": "https://speeddials.opera.com/api/v2/ping/gog_row_suggestions",
            "premium": false,
            "real_url": "https://www.google.com",
            "thumbmnail_url": "",
            "url": "https://google.com/"
        }
    ],
    "thumbnails": [{
            "image_data": "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",
            "response_time": 1580006341.666931,
            "url": "https://speeddials.opera.com/api/v1/thumbnails/www.farfetch.com"
        }
    ]
}

Example URL

Visiting https://speeddials.opera.com/api/v1/thumbnails/www.farfetch.com will give you:

https://sd-images.operacdn.com/api/v1/images/8bc90180428789d40775843aa32f79e39a5b083a.png

It appears https://speeddials.opera.com/api/v1/thumbnails/www.domain-name.com will return the thumbnail for that domain if available, e.g. https://speeddials.opera.com/api/v1/thumbnails/www.google.com

Official documentation

https://dev.opera.com/extensions/speed-dial-api/

Darthagnon commented 2 months ago

If this is ever implemented, it is no worse than e.g. using Google's or DuckDuckGo's favicon API https://dev.to/derlin/get-favicons-from-any-website-using-a-hidden-google-api-3p1e but should be optional to use.