其他

Xeno-canto

Xeno-canto是一个专注于鸟类鸣声记录的免费API数据库,提供全球范围内多种鸟类的音频录音、元数据和相关信息检索服务,帮助鸟类研究者、爱好者获取和分析鸟类声音资料。

查看官方文档 ↗

接入教程

1. 访问Xeno-canto官网查看API文档
2. 使用基础查询参数搜索鸟类录音
3. 获取录音文件URL或元数据JSON
4. 集成到您的鸟类研究或分析应用中

Python 示例:搜索鸟类录音

python
import requests

base_url = 'https://xeno-canto.org/api/2'
params = {
    'query': 'gen:Parus',
    'page': 1
}
headers = {
    'Authorization': 'Bearer YOUR_API_KEY'
}

response = requests.get(base_url + '/recordings', params=params, headers=headers)
data = response.json()
print(f'Found {data["numRecordings"]} recordings')
for recording in data.get('recordings', [])[:3]:
    print(f"Species: {recording.get('en')}, Country: {recording.get('cnt')}")

PHP 示例:获取录音详情

php
<?php

$baseUrl = 'https://xeno-canto.org/api/2';
$recordingId = '123456';
$apiKey = 'YOUR_API_KEY';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $baseUrl . '/recordings/' . $recordingId);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer ' . $apiKey
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
if (isset($data['id'])) {
    echo "Recording ID: " . $data['id'] . "\n";
    echo "Species: " . $data['en'] . "\n";
    echo "Audio URL: " . $data['file'] . "\n";
}
?>

JavaScript 示例:按国家筛选录音

javascript
const baseUrl = 'https://xeno-canto.org/api/2';
const country = 'China';
const apiKey = 'YOUR_API_KEY';

async function fetchRecordingsByCountry() {
    try {
        const response = await fetch(`${baseUrl}/recordings?query=cnt:${country}&page=1`, {
            headers: {
                'Authorization': `Bearer ${apiKey}`
            }
        });
        const data = await response.json();
        console.log(`Recordings from ${country}: ${data.numRecordings}`);
        data.recordings.slice(0, 3).forEach(rec => {
            console.log(`ID: ${rec.id}, Species: ${rec.en}, Date: ${rec.date}`);
        });
    } catch (error) {
        console.error('Error fetching recordings:', error);
    }
}

fetchRecordingsByCountry();

常见问题

Xeno-canto API 是否需要付费?

Xeno-canto API 目前提供免费访问服务,但需遵循其使用条款和限制,例如请求频率限制。商业用途或大规模数据抓取可能需要特殊授权。

API 支持哪些查询参数?

API 支持多种查询参数,如按物种(gen)、国家(cnt)、录音质量(q)等筛选。详细参数请参考官方文档的查询语法部分。

如何获取 API 密钥?

通常无需 API 密钥即可访问公开数据,但某些高级功能或更高请求限额可能需要注册账户并申请密钥。请查阅官网的 API 指南获取最新信息。

相似接口推荐

AWS SSO Identity Store

AWS SSO Identity Store是AWS IAM Identity Center(原AWS单点登录)使用的身份存储服务,提供一个统一的位置检索所有身份信息(用户和群组)。该服务简化了身份管理流程,帮助集中管理

待确认
Amazon Honeycode

Amazon Honeycode是一项全托管服务,让您无需编程即可快速为团队构建移动和Web应用。可用于管理项目、客户、运营、审批、资源乃至团队协作等各类事务。

待确认
AWS Glue

AWS Glue 是一项完全托管的提取、转换和加载(ETL)服务,可简化数据准备和集成工作。它自动发现、编目数据,并支持在数据湖和数据仓库之间进行ETL操作。

待确认
亚马逊Glacier

亚马逊S3 Glacier(简称Glacier)是一款针对“冷数据”的存储解决方案。这项超低成本的存储服务为数据备份和归档提供安全、持久且易于使用的存储方案。用户可经济高效地存储数据数月、数年甚至数十年。

待确认