https://github.com/bsthen/device-models
Mapping of device codes to marketing names for Android and other smartphones, auto-updated from Google Play supported devices CSV.
https://github.com/bsthen/device-models
android api device-codes device-models fastapi google-play json python smartphones
Last synced: about 2 months ago
JSON representation
Mapping of device codes to marketing names for Android and other smartphones, auto-updated from Google Play supported devices CSV.
- Host: GitHub
- URL: https://github.com/bsthen/device-models
- Owner: bsthen
- License: apache-2.0
- Created: 2025-10-04T02:29:34.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-10-04T04:10:32.000Z (9 months ago)
- Last Synced: 2025-10-04T04:21:20.730Z (9 months ago)
- Topics: android, api, device-codes, device-models, fastapi, google-play, json, python, smartphones
- Language: Python
- Homepage: https://raw.githubusercontent.com/bsthen/device-models/main/devices.json
- Size: 299 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Android Device Models
This repository provides a **mapping of device codes to marketing names** for Android and other smartphones. The data is sourced from the publicly available Google Play supported devices list and updated automatically via GitHub Actions.
---
## Features
- **Device code → Marketing name mapping**
- Includes the **brand** of each device.
- Auto-updated **everyday** from Google’s CSV.
- JSON format for easy integration in apps, APIs, or scripts.
---
## 🧩 CDN Providers
| CDN Providers | CDN URLs | Notes |
| ------------------------------- | -------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| **jsDelivr** | `https://cdn.jsdelivr.net/gh/bsthen/device-models/devices.json` | ✅ Fast, reliable, cached globally via Cloudflare. Recommended for production. |
| **Statically.io** | `https://cdn.statically.io/gh/bsthen/device-models/main/devices.json` | ✅ Fast, good for GitHub content, supports branches and tags. |
| **Rawcdn.githack** | `https://rawcdn.githack.com/bsthen/device-models/main/devices.json` | ✅ Good for production usage; caches aggressively.
| **Raw.githack** | `https://raw.githack.com/bsthen/device-models/main/devices.json` | ✅ Good for testing or demo usage; caches aggressively. |
| **gcore.jsdelivr.net (Mirror)** | `https://gcore.jsdelivr.net/gh/bsthen/device-models/devices.json` | 🌍 Mirror of jsDelivr on Gcore network, used automatically by jsDelivr sometimes. |
| **GitHub Raw URL** | `https://raw.githubusercontent.com/bsthen/device-models/main/devices.json` | ⚠️ Not a CDN (no caching or speed optimization). Best for API scripts or updates. |
## Example JSON Format
```json
{
"SM-G965F": {
"brand": "Samsung",
"name": "Samsung Galaxy S9+"
},
"SM-G960F": {
"brand": "Samsung",
"name": "Samsung Galaxy S9"
}
}
```
# Usage
## Python Example
```bash
import requests
DEVICES_URL = "https://cdn.jsdelivr.net/gh/bsthen/device-models/devices.json"
resp = requests.get(DEVICES_URL)
device_map = resp.json()
device_code = "SM-G965F"
device = device_map.get(device_code)
if device:
print(f"{device_code} → {device['brand']} {device['name']}")
else:
print("Device not found")
```
## FastAPI Example
```bash
from fastapi import FastAPI, HTTPException
import requests
app = FastAPI()
DEVICES_URL = "https://cdn.jsdelivr.net/gh/bsthen/device-models/devices.json"
device_map = requests.get(DEVICES_URL).json()
@app.get("/device")
def get_device(code: str):
device = device_map.get(code.upper())
if device:
return {"code": code, "brand": device.get("brand"), "name": device.get("name")}
raise HTTPException(status_code=404, detail="Device not found")
```
# GitHub Actions
This repository uses GitHub Actions to automatically fetch the latest supported devices CSV from Google, convert it to JSON, and commit updates everyday.
# License
This repository is licensed under the [Apache License 2.0](https://github.com/bsthen/device-models?tab=Apache-2.0-1-ov-file).
# Notes
- The dataset is based on Google’s publicly available supported devices list:
[https://storage.googleapis.com/play_public/supported_devices.html](https://storage.googleapis.com/play_public/supported_devices.html)
- Device codes are usually manufacturer/model identifiers (e.g., SM-G965F for Samsung Galaxy S9+).