An automated Bing wallpaper data collection and documentation generation project that supports daily wallpaper data crawling, high-definition image downloading, and Markdown document generation for 34+ countries and regions.
- Multi-Country Support: Supports 34+ countries and regions for Bing wallpaper data
- Daily Auto-Update: Automatically runs daily at 23:01 UTC via GitHub Actions
- Data Integrity: Saves complete wallpaper metadata including titles, copyright info, descriptions, etc.
- High-Definition Wallpapers: Automatically downloads UHD ultra-high-definition wallpapers
- Smart Deduplication: Automatically detects and removes duplicate images based on MD5 hash
- Incremental Download: Only downloads new wallpapers, avoiding duplicates
- File Management: Uses MD5 values as filenames for easy management and deduplication
- Automated Documentation: Generates dedicated Markdown documents for each country
- Responsive Layout: 3-column grid layout that adapts to different screen sizes
- Multi-Time Dimensions: Supports today's wallpaper, recent 30 days, and archive browsing by year/month
- Multilingual Support: Supports interface text in multiple languages
Project Root/
โโโ .github/workflows/ # GitHub Actions workflows
โ โโโ python-app.yml # Automation task configuration
โโโ crawl/ # Crawler scripts directory
โ โโโ bing_data.py # Data crawling script
โ โโโ download_wallpapers_action.py # Wallpaper download script (Actions version)
โ โโโ download_wallpapers.py # Wallpaper download script (Local version)
โ โโโ generate_markdown.py # Markdown document generation script
โ โโโ generate_readme.py # README generation script
โ โโโ deduplicate_images.py # Image deduplication tool
โโโ jsonc/ # Wallpaper data storage
โ โโโ us/bing.jsonc # US wallpaper data
โ โโโ cn/bing.jsonc # China wallpaper data
โ โโโ ... # Other country data
โโโ images/ # Downloaded wallpaper images
โ โโโ {md5}.jpg # Image files named with MD5
โ โโโ ...
โโโ markdown/ # Generated documents
โ โโโ wallpaper-list-us.md # US wallpaper document
โ โโโ wallpaper-list-cn.md # China wallpaper document
โ โโโ ... # Other country documents
โโโ messages/ # Internationalization text
โ โโโ us.json # English interface text
โ โโโ cn.json # Chinese interface text
โ โโโ ...
โโโ templates/ # README template files
โ โโโ README_template.md # English README template
โ โโโ README_CN_template.md # Chinese README template
โโโ README.md # Project documentation (auto-generated)
โโโ README_CN.md # Chinese documentation (auto-generated)
- Function: Crawls daily wallpaper data from Bing API
- Output: Saves to
jsonc/{country}/bing.jsonc - Features:
- Supports 34+ countries and regions
- Automatic API response and error handling
- Maintains chronological order (newest first)
- Incremental updates, avoiding duplicate data
- Function: Downloads high-definition wallpaper images and manages files
- Features:
- Smart Skip: Checks
md5field in JSON, skips already downloaded items - URL Construction:
https://www.bing.com{urlbase}_UHD.jpg - MD5 Management: Calculates image MD5 value, used as filename and deduplication identifier
- Auto Deduplication: Automatically deletes duplicate files with same MD5
- Data Update: Writes MD5 value back to JSON data
- Smart Skip: Checks
- Function: Generates beautiful Markdown wallpaper documents
- Output: Saves to
markdown/wallpaper-list-{country}.md - Features:
- Today's Wallpaper: Showcases the featured wallpaper of the day
- Recent 30 Days: 3-column grid layout showing recent wallpapers
- Archive Navigation: Historical wallpaper browsing organized by year/month
- Responsive Design: Display effects adapted to different devices
- Multilingual Support: Displays interface in corresponding language based on country
- Function: Automatically generates bilingual README documents
- Input: Reads from
templates/README_template.mdandtemplates/README_CN_template.md - Output: Updates
README.mdandREADME_CN.mdin project root - Features:
- Template-Based: Uses template files to avoid overwriting base content
- Country Links: Generates links to all country wallpaper documents
- Today's Wallpaper: Embeds today's featured wallpaper (US for English, CN for Chinese)
- Bilingual Support: Generates both English and Chinese versions
- Auto-Update: Runs daily with other automation tasks
GitHub Actions automatically executes the following steps daily:
- ๐ Checkout Code - Get the latest project code
- ๐ Setup Python Environment - Configure Python runtime environment
- ๐ฆ Install Dependencies - Install necessary libraries like
requests - ๐ Crawl Data - Run
bing_data.pyto get latest wallpaper data - ๐ผ๏ธ Download Images - Run
download_wallpapers_action.pyto download new wallpapers - ๐ Generate Documents - Run
generate_markdown.pyto update Markdown documents - ๐ Generate README - Run
generate_readme.pyto update project README files - ๐พ Commit Changes - Automatically commit and push all updates
The project supports the following 34 countries and regions:
| Code | Country/Region | Code | Country/Region | Code | Country/Region |
|---|---|---|---|---|---|
ar |
๐ฆ๐ท Argentina | au |
๐ฆ๐บ Australia | br |
๐ง๐ท Brazil |
ca |
๐จ๐ฆ Canada | cn |
๐จ๐ณ China | cz |
๐จ๐ฟ Czech Republic |
de |
๐ฉ๐ช Germany | dk |
๐ฉ๐ฐ Denmark | es |
๐ช๐ธ Spain |
fi |
๐ซ๐ฎ Finland | fr |
๐ซ๐ท France | gb |
๐ฌ๐ง United Kingdom |
gr |
๐ฌ๐ท Greece | hk |
๐ญ๐ฐ Hong Kong | id |
๐ฎ๐ฉ Indonesia |
in |
๐ฎ๐ณ India | it |
๐ฎ๐น Italy | jp |
๐ฏ๐ต Japan |
kr |
๐ฐ๐ท South Korea | my |
๐ฒ๐พ Malaysia | nl |
๐ณ๐ฑ Netherlands |
no |
๐ณ๐ด Norway | pl |
๐ต๐ฑ Poland | pt |
๐ต๐น Portugal |
ru |
๐ท๐บ Russia | se |
๐ธ๐ช Sweden | sg |
๐ธ๐ฌ Singapore |
th |
๐น๐ญ Thailand | tr |
๐น๐ท Turkey | tw |
๐น๐ผ Taiwan |
ua |
๐บ๐ฆ Ukraine | us |
๐บ๐ธ United States | vn |
๐ป๐ณ Vietnam |
za |
๐ฟ๐ฆ South Africa |
- Python 3.7+
requestslibrary
pip install requests# 1. Crawl wallpaper data
python crawl/bing_data.py
# 2. Download wallpaper images
python crawl/download_wallpapers_action.py
# 3. Generate Markdown documents
python crawl/generate_markdown.py
# 4. Generate README documents
python crawl/generate_readme.py# Clean duplicate image files
python crawl/deduplicate_images.pyEach generated Markdown document includes:
- High-definition wallpaper preview
- Detailed description and copyright information
- Click to view details page link
- 3-column responsive grid layout
- Thumbnail and basic information for each wallpaper
- Formatted date display
- Month navigation grouped by year
- Current month highlighting
- Beautiful button-style design
- Automatically selects interface language based on country
- Supports English, Chinese, German, French, Japanese, etc.
- Extensible internationalization framework
Workflow configuration file: .github/workflows/python-app.yml
name: Generate Bing Wallpaper Json Auto
on:
schedule:
- cron: '1 23 * * *' # Execute daily at 23:01 UTC
workflow_dispatch: # Support manual trigger
jobs:
download_and_push:
runs-on: ubuntu-latest
steps:
- name: run bingjson
run: python crawl/bing_data.py
- name: Download wallpaper images
run: python crawl/download_wallpapers_action.py
- name: Generate markdown documents
run: python crawl/generate_markdown.py
- name: Generate README documents
run: python crawl/generate_readme.py
- name: Commit and Push
run: |
git add .
git commit -m "Update wallpaper data and markdown at $(date)"
git pushEach wallpaper data item contains the following fields:
startdate/enddate: Start and end dates of the wallpaperurl/urlbase: URL information of the wallpapercopyright: Copyright informationtitle: Wallpaper titlemd5: MD5 hash value of the image file (added after download)MediaContent: Detailed media content information
- โ
Incremental Download: Only downloads new wallpapers without
md5field - โ Auto Deduplication: Avoids duplicate images based on MD5 hash
- โ Error Handling: Graceful handling of network exceptions without interrupting the process
- โ Detailed Logging: Provides clear processing progress and result statistics
- โ Responsive Design: Adapts to desktop and mobile devices
- โ SEO Friendly: Structured titles and metadata
- โ Fast Loading: Optimized image links and layout
- โ User Experience: Intuitive navigation and browsing experience
- โ Scheduled Execution: Daily automatic updates without manual intervention
- โ Error Monitoring: GitHub Actions provides execution status monitoring
- โ Version Control: All changes have complete Git history records
- โ Scalability: Easy to add new countries and features
- Supported Countries: 34+ countries and regions
- Data Format: JSON/JSONC structured storage
- Image Quality: UHD ultra-high-definition (usually 3840x2160 or higher)
- Update Frequency: Daily automatic updates
- Document Format: Markdown, perfectly compatible with GitHub
Welcome to submit Issues and Pull Requests to improve this project!
This project is for learning and research purposes only. All wallpaper copyrights belong to Microsoft Bing and the respective photographers/copyright owners.
Last Updated: August 2025
Click the links below to view wallpaper for each country:
Tahoe serving views
You know a place holds stories when geologists, filmmakers, and local folklore all claim it for different reasons. Lake Tahoe, straddling the border between California and Nevada, fits that bill perfectly. Formed during the Ice Age, the lake was shaped by faulting and glacial carving that created its deep basin. It is now one of the deepest freshwater lakes in the United States. For generations, the Washoe people lived around these clear waters, fishing and gathering seasonally. Centuries later, miners arrived, steamboats crossed the water, and Tahoe shifted from a resource hub to a year-round retreat.
ยฉ Bill Stevenson/Cavan Images (Bing United States)
![]() |
![]() |
![]() |
| Tahoe serving views Emerald Bay and Fannette Island, Lake Tahoe, California 2026-02-04 |
A shadow's promise Alpine marmots, Hohe Tauern National Park, Austria 2026-02-03 |
Celebrate. Reflect. Rise. US Army nurses arrive in Greenock, Scotland, 1944 2026-02-02 |
![]() |
![]() |
![]() |
| Love at first stripe Plains zebras, Etosha National Park, Namibia 2026-02-01 |
Where the sea makes way St. Michael's Mount in Marazion, Cornwall, England 2026-01-31 |
A tall story of Milwaukee The eight-story open atrium of Milwaukee City Hall, Wisconsin 2026-01-30 |
![]() |
![]() |
![]() |
| Flow with it Whanganui National Park, Retaruke, New Zealand 2026-01-29 |
Feather forecast: pelicans ahead Dalmatian pelicans, Lake Kerkini, Greece 2026-01-28 |
Bavariaโs gem Neuschwanstein Castle, Bavaria, Germany 2026-01-27 |
![]() |
![]() |
![]() |
| Tradition burns bright Burns National Heritage Park, Ayr, Ayrshire, Scotland 2026-01-26 |
A Swiss escape Andermatt village in the Alps, Switzerland 2026-01-25 |
Feasting through frost Sheep grazing in snow, Iceland 2026-01-24 |
![]() |
![]() |
![]() |
| A Bohemian spa story Karlovy Vary, Bohemia, Czechia 2026-01-23 |
A flash of red in the winter white Eurasian red squirrel 2026-01-22 |
Life on the edge of the ice Gentoo penguin, Petermann Island, Antarctica 2026-01-21 |
![]() |
![]() |
![]() |
| Standing where hope rose Washington Monument seen from Lincoln Memorial, Washington, DC 2026-01-20 |
A desert in disguise White Sands National Park, New Mexico 2026-01-19 |
The dome of Piazza del Plebiscito Basilica of San Francesco di Paola, Naples, Italy 2026-01-18 |
![]() |
![]() |
![]() |
| Eye see you Leopard at Etosha National Park, Namibia 2026-01-17 |
Tiny village, big views The fishing village of Reine, Norway 2026-01-16 |
Ascending history at Palamidi The staircase of the Fortress of Palamidi, Nafplio, Greece 2026-01-15 |
![]() |
![]() |
![]() |
| Apple rhymes and old times Vale of Clwyd, Wales 2026-01-14 |
Otter-ly Estonia Eurasian otter and pup, Estonia 2026-01-13 |
From resistance to radiance Blue walls of Chefchaouen, Morocco 2026-01-12 |
![]() |
![]() |
![]() |
| Pure Swiss magic The Matterhorn reflected in Lake Stellisee at sunrise, Zermatt, Switzerland 2026-01-11 |
Where time grows tall Giant redwood trees in Muir Woods National Monument, California 2026-01-10 |
Rust meets rush Starling murmuration over the ruins of Brighton's West Pier, England 2026-01-09 |
![]() |
![]() |
![]() |
| Rock legends Turret Arch framed by North Window in Arches National Park, Utah 2026-01-08 |
Chillin' in Nuuk Nuuk, Greenland 2026-01-07 |
Herd on high alert A herd of impalas, Londolozi Game Reserve, South Africa 2026-01-06 |





























