@unavatar/core 3.46.16 → 3.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -2
- package/package.json +2 -2
- package/src/providers/index.js +2 -0
- package/src/providers/kick.js +25 -0
package/README.md
CHANGED
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
- [Hugging Face](#hugging-face)
|
|
50
50
|
- [Instagram](#instagram)
|
|
51
51
|
- [Juejin](#juejin)
|
|
52
|
+
- [Kick](#kick)
|
|
52
53
|
- [Ko-fi](#ko-fi)
|
|
53
54
|
- [LinkedIn](#linkedin)
|
|
54
55
|
- [Mastodon](#mastodon)
|
|
@@ -106,13 +107,13 @@ Last updated on August 18, 2026
|
|
|
106
107
|
|
|
107
108
|
## Introduction
|
|
108
109
|
|
|
109
|
-
**unavatar.io** retrieves anyone's avatar from a single URL — by username, email, or domain — across
|
|
110
|
+
**unavatar.io** retrieves anyone's avatar from a single URL — by username, email, or domain — across 73 platforms including [Instagram](https://unavatar.io/docs#instagram), [GitHub](https://unavatar.io/docs#github), [YouTube](https://unavatar.io/docs#youtube), [X/Twitter](https://unavatar.io/docs#xtwitter), and [Gravatar](https://unavatar.io/docs#gravatar). No API keys, no SDKs, free to start.
|
|
110
111
|
|
|
111
112
|
Try it: [unavatar.io/github/kikobeats](https://unavatar.io/github/kikobeats) · [unavatar.io/x/josebaseba](https://unavatar.io/x/josebaseba) · [unavatar.io/domain/reddit.com](https://unavatar.io/domain/reddit.com)
|
|
112
113
|
|
|
113
114
|
Everything you need to serve avatars at scale:
|
|
114
115
|
|
|
115
|
-
- **Versatile**: One endpoint rules
|
|
116
|
+
- **Versatile**: One endpoint rules 73 platforms and services — [TikTok](https://unavatar.io/docs#tiktok), [Instagram](https://unavatar.io/docs#instagram), [YouTube](https://unavatar.io/docs#youtube), [X/Twitter](https://unavatar.io/docs#xtwitter), [Gravatar](https://unavatar.io/docs#gravatar), and more — all queried the same way.
|
|
116
117
|
|
|
117
118
|
- **Battle-tested**: Already serving 2.77 TB of avatars across 189.4M requests, with a 70% cache hit rate.
|
|
118
119
|
|
|
@@ -811,6 +812,12 @@ Get any Juejin user's profile picture by their numeric user ID.
|
|
|
811
812
|
|
|
812
813
|
e.g., [unavatar.io/juejin/1556564194374926](https://unavatar.io/juejin/1556564194374926)
|
|
813
814
|
|
|
815
|
+
### Kick
|
|
816
|
+
|
|
817
|
+
Get any Kick streamer's profile picture by their username.
|
|
818
|
+
|
|
819
|
+
e.g., [unavatar.io/kick/xqc](https://unavatar.io/kick/xqc)
|
|
820
|
+
|
|
814
821
|
### Ko-fi
|
|
815
822
|
|
|
816
823
|
Get any Ko-fi page's profile picture by the creator username.
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@unavatar/core",
|
|
3
3
|
"description": "Get unified user avatar from social networks, including Instagram, SoundCloud, Telegram, Twitter, YouTube & more.",
|
|
4
4
|
"homepage": "https://unavatar.io",
|
|
5
|
-
"version": "3.
|
|
5
|
+
"version": "3.47.0",
|
|
6
6
|
"main": "src/index.js",
|
|
7
7
|
"exports": {
|
|
8
8
|
".": "./src/index.js",
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
"@microlink/mql": "~0.18.0",
|
|
130
130
|
"@microlink/ping-url": "~1.5.0",
|
|
131
131
|
"bimi-url": "~1.0.0",
|
|
132
|
-
"browserless": "~13.
|
|
132
|
+
"browserless": "~13.9.2",
|
|
133
133
|
"cacheable-lookup": "~6.1.0",
|
|
134
134
|
"data-uri-regex": "~0.1.4",
|
|
135
135
|
"debug-logfmt": "~1.4.10",
|
package/src/providers/index.js
CHANGED
|
@@ -30,6 +30,7 @@ const providerTiers = {
|
|
|
30
30
|
'hevy',
|
|
31
31
|
'instagram',
|
|
32
32
|
'juejin',
|
|
33
|
+
'kick',
|
|
33
34
|
'ko-fi',
|
|
34
35
|
'linkedin',
|
|
35
36
|
'mastodon',
|
|
@@ -118,6 +119,7 @@ module.exports = ctx => {
|
|
|
118
119
|
hevy: require('./hevy')(ctx),
|
|
119
120
|
instagram: require('./instagram')(ctx),
|
|
120
121
|
juejin: require('./juejin')(ctx),
|
|
122
|
+
kick: require('./kick')(ctx),
|
|
121
123
|
'ko-fi': require('./ko-fi')(ctx),
|
|
122
124
|
linkedin: require('./linkedin')(ctx),
|
|
123
125
|
mastodon: require('./mastodon')(ctx),
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const API_URL = 'https://kick.com/api/v2/channels'
|
|
4
|
+
|
|
5
|
+
const getAvatarUrl = input => `${API_URL}/${encodeURIComponent(input)}`
|
|
6
|
+
|
|
7
|
+
const getAvatar = body => {
|
|
8
|
+
const pic = body?.user?.profile_pic
|
|
9
|
+
return typeof pic === 'string' && pic ? pic : undefined
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
module.exports = ({ got }) =>
|
|
13
|
+
async function kick (input) {
|
|
14
|
+
const { body, statusCode } = await got(getAvatarUrl(input), {
|
|
15
|
+
responseType: 'json',
|
|
16
|
+
throwHttpErrors: false
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
if (statusCode >= 400) return
|
|
20
|
+
|
|
21
|
+
return getAvatar(body)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
module.exports.getAvatarUrl = getAvatarUrl
|
|
25
|
+
module.exports.getAvatar = getAvatar
|