Oha Api / Neko Api

圖像Api beta

已調用 -

參數說明

查詢符 參數 描述
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 讓系統自動判斷;桌面端若缺圖會後備貼紙。

桌面預覽

桌面壁紙

適合桌面使用的高質量圖片,精選自優秀畫師作品。

category=desktop
移動端預覽

移動端

針對手機端比例優化,隨時隨地快速使用。

category=mobile
貼紙預覽

貼紙 / 頭像

輕量化輸出,適合社交頭像或貼圖使用。

category=sticker

您可以批量下載或取得縮略圖,從 Neko Drive 下載

您可以批量調用 category=desktop,mobile 自動根據 UA 選擇合適輸出,或使用 category=auto 讓系統自動判斷;桌面端若缺圖會後備貼紙。

HTML 嵌入圖像:

<img src="https://api.oha.li/image?category=sticker&maxSize=1mb" alt="Sticker Image" />

顯示桌面端圖像(限制小於2MB):

https://api.oha.li/image?category=desktop&maxSize=2mb

隨機顯示移動與桌面端圖像:

https://api.oha.li/image?category=mobile,desktop

CSS 背景圖像設定:

body {
    background-image: url('https://api.oha.li/image?category=desktop&maxSize=2mb');
    background-size: cover;
    background-repeat: no-repeat;
}

JavaScript 動態加載圖像:

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,展示最近被隨機到的圖像。

個人最近(依客戶端 IP)

訪問

https://api.oha.li/recent?scope=user&kind=image&limit=3
返回你的最近隨機圖像記錄,以下預覽顯示前 3 筆:

Meta

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)。

音樂 API beta

參數說明

查詢符 參數 描述
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

統計

總次數(image)

-

今日次數(image)

-

類別統計

    總次數(music)

    -

    今日次數(music)

    -

    類別統計(music)

      來源連通性測試

      直接向各來源發送非代理的實際請求,以確認當前網路是否能連通到真正的檔案。

      尚未測試

      更新記錄

      更新記錄-2025/12/21
      • 2025/12/21 由於OneDrive來源解析可能不穩定,我們將默認情況下的OneDrive來源權重降低。
      更新記錄-2025/12/14
      • 2025/12/14 重構了後端,現在支援代理模式和重定向模式。
      • 2025/12/14 新增 minSize 查詢參數(圖像/音樂)並在無符合時回傳 404。
      • 2025/12/14 將 meta 的 overtakeRandLimit 更名為 noMatchWithinConstraints,語意更清晰。
      • 2025/12/14 新增 source 查詢符,可指定或合併來源;source=all 等同預設全來源。
      更新記錄-2025/01/26
      • 2025/01/26/ 新增了顯示查詢Meta資訊功能,修復size限制可能不起用的問題。
      • 2025/01/10/ 進一步優化了速率,現在使用非阻塞方式執行所有IO。
      • 2025/01/09/ 新增默認透過UA顯示自適應圖像,新增多選圖像類型的功能。
      • 2025/01/07 更新了圖庫,現在擁有4000+精挑細選的圖像。優化計數功能及log以JSON格式顯示,增加了限制圖像大小的功能。
      • 2025/01/01 爲圖像api新增了調用計數功能。

      未來計劃

      我正在考慮使用重定向的方式隨機圖像,而非直接輸出,這樣可以將圖像靜態部署並提高訪問速率與Api效率。

      我們已經實作了代理模式和重定向模式。

      大陸優化

      我們已經使用多種來源以提升在中國大陸的訪問速度和穩定性,現在您可以指定來源或隨機。

      後續將會持續更新,如果有任何Ideas歡迎隨時聯絡!😘

      Niko Love~ 💕💕💕

      Image API Music API 最近記錄 連通測試 統計 更新記錄