| 查詢符 | 參數 | 描述 |
|---|---|---|
| category(type 已棄用) | desktop | 適合桌面端的圖像。 |
| category(type 已棄用) | mobile | 適合移動端的圖像。 |
| category(type 已棄用) | sticker | 貼紙 / 頭像。 |
| category(type 已棄用) | auto | 自動依 UA 判斷 desktop/mobile(或無參時亦自動)。 |
| source | oneDrive, NekoData, NekoR2Data / all | 依來源篩選;可用逗號分隔多來源,all 或空值=全來源隨機。 |
| minSize | 大小+b、kb、mb、gb | 限制最小檔案大小(未知大小也會通過)。 |
| maxSize / size | 大小+b、kb、mb、gb | 限制最大檔案大小;未找到符合時可能標記 noMatchWithinConstraints並傳回404。 |
| meta | 1 / 0 | 只回 JSON Meta(不跳轉、不輸出檔案)。 |
| proxy | 1 / 0 | 直接代理輸出(轉發遠端輸出)。 |
| redirect | 1 / 0 | 302 轉向;預設為 1(除非設 proxy)。 |
注意: category 可用半角逗號,組合(如 desktop,mobile);source 同理,預設或 source=all 為使用全部來源;type 已棄用但仍兼容,請改用 category。
每張圖像都經過我精心篩選,其大部分來自我關注的50餘位繪師。除此之外,如有遇到中意的也會着手添加,當然也可以向我推薦。
您可以批量調用 category=desktop,mobile 自動根據 UA 選擇合適輸出,或使用 category=auto
讓系統自動判斷;桌面端若缺圖會後備貼紙。
您可以批量下載或取得縮略圖,從 Neko Drive 下載
您可以批量調用 category=desktop,mobile 自動根據 UA 選擇合適輸出,或使用 category=auto
讓系統自動判斷;桌面端若缺圖會後備貼紙。
<img src="https://api.oha.li/image?category=sticker&maxSize=1mb" alt="Sticker Image" />
https://api.oha.li/image?category=desktop&maxSize=2mb
https://api.oha.li/image?category=mobile,desktop
body {
background-image: url('https://api.oha.li/image?category=desktop&maxSize=2mb');
background-size: cover;
background-repeat: no-repeat;
}
document.addEventListener('DOMContentLoaded', function() {
const imgElement = document.getElementById('dynamicImg');
const apiUrl = 'https://api.oha.li/image?category=sticker&maxSize=1mb';
fetch(apiUrl)
.then(response => response.blob())
.then(blob => {
const imgUrl = URL.createObjectURL(blob);
imgElement.src = imgUrl;
})
.catch(error => console.error('Error loading image:', error));
});
<img id="myImg" src="" alt="loading..">
<script>
const imgUrlBase = 'https://api.oha.li/image?category=desktop';
function generateUniqueUrl(base) {
const randomString = Math.random().toString(36).substring(2, 12);
return `${base}&cacheBuster=${randomString}`;
}
document.getElementById('myImg').src = generateUniqueUrl(imgUrlBase);
</script>
即時查詢 /recent?scope=global&kind=image&limit=12,展示最近被隨機到的圖像。
訪問
https://api.oha.li/recent?scope=user&kind=image&limit=3返回你的最近隨機圖像記錄,以下預覽顯示前 3 筆:
https://api.oha.li/image?category=desktop&meta=1&minSize=100kb&maxSize=2mb以
JSON 返回本次查詢的 Meta 資訊 (不再重導向或直接輸出圖像):
{
"image": {
"category": "desktop",
"name": "93921212.jpg",
"path": "https://data.oha.li/img/desktop/93921212.jpg",
"size": 835217
},
"minSize": 102400,
"limitSize": 2097152,
"noMatchWithinConstraints": false
}
| 鍵 | 值 | 描述 |
|---|---|---|
| minSize | Int | 最小限制(bytes),0 為無限制。 |
| image.category | desktop/mobile/sticker | 本次選中的類別。 |
| image.path | URL | 實際文件地址(可遠端)。 |
| image.name | String | 文件名。 |
| image.source | String | 資料來源名稱(若設定來源時才會回傳)。 |
| image.size | Int | 文件大小(bytes),遠端可能為 0。 |
| limitSize | Int | 最大限制(bytes),0 為無限制。 |
| noMatchWithinConstraints | Bool | 若為 true 表示沒有找到符合 min/max 的檔案(將返回 404)。 |
| 查詢符 | 參數 | 描述 |
|---|---|---|
| category(type 已棄用,仍兼容) | artist 名稱 | 按歌手/分類篩選;可用逗號分隔多個,留空或 auto 表示不指定。 |
| mode | random | list | categories | random/預設:隨機;list:列出所有符合的音樂;categories:列出所有歌手/分類。 |
| action | rand/random/none | list/all | categories/cats | 與 mode 等價的簡寫;未指定時預設 random。 |
| count | 1-10 | 隨機返回多首(僅在 meta=1 且 mode=random 時有效),超出上限自動裁成 10。 |
| minSize | 大小+b、kb、mb、gb | 最小檔案大小(未知大小也會通過)。 |
| maxSize | 大小+b、kb、mb、gb | 最大檔案大小限制。 |
| meta | 1 / 0 | 只回 JSON Meta,不跳轉或代理;需要 count>1 時務必設為 1。 |
| proxy | 1 / 0 | 直接代理輸出音樂檔。 |
| redirect | 1 / 0 | 302 轉向(預設 1)。 |
| source | oneDrive / NekoData / all | 依來源篩選;可用逗號分隔多來源,all 或空值=全來源隨機。 |
提示: count>1 僅支援 meta=1 且不支援
proxy/redirect;category 可逗號分隔多歌手,空值同「全部」。type 已棄用但仍兼容,請改用 category。
/music?mode=categories ← 列出所有歌手
/music?mode=list&category=jay%20chou ← Jay Chou 全部歌曲列表
/music?meta=1&count=5&category=jay%20chou ← 隨機 5 首(JSON Meta)
/music?redirect=1&category=jay%20chou ← 隨機 1 首並 302 重導
在線聆聽 jay chou 無損音樂和更多!
批量下載 Musics
-
-
-
-
直接向各來源發送非代理的實際請求,以確認當前網路是否能連通到真正的檔案。
source 查詢符,可指定或合併來源;source=all
等同預設全來源。我正在考慮使用重定向的方式隨機圖像,而非直接輸出,這樣可以將圖像靜態部署並提高訪問速率與Api效率。
我們已經實作了代理模式和重定向模式。
我們已經使用多種來源以提升在中國大陸的訪問速度和穩定性,現在您可以指定來源或隨機。
後續將會持續更新,如果有任何Ideas歡迎隨時聯絡!😘
Niko Love~ 💕💕💕