Quick Start

Wallhaven — iterate through all pages

from xanax import Wallhaven
from xanax.sources.wallhaven.params import SearchParams
from xanax.sources.wallhaven.enums import Sort

client = Wallhaven(api_key="your-api-key")

for wallpaper in client.iter_media(SearchParams(query="space", sorting=Sort.TOPLIST)):
    print(wallpaper.resolution, wallpaper.path)

Wallhaven — download a wallpaper

wallpaper = client.wallpaper("94x38z")
client.download(wallpaper, path="wallpaper.jpg")

Wallhaven — async version

import asyncio
from xanax import AsyncWallhaven
from xanax.sources.wallhaven.params import SearchParams

async def main():
    async with AsyncWallhaven(api_key="your-api-key") as client:
        results = await client.search(SearchParams(query="nature"))

        async for wallpaper in client.aiter_media(SearchParams(query="space")):
            print(wallpaper.path)

asyncio.run(main())

Unsplash — iterate through all pages

for photo in unsplash.iter_media(UnsplashSearchParams(query="landscape")):
    print(photo.id, photo.resolution)

Reddit — basic media fetch

from xanax.sources.reddit import Reddit
from xanax.sources.reddit.params import RedditParams
from xanax.enums import MediaType

client = Reddit(
    client_id="your-client-id",
    client_secret="your-client-secret",
    user_agent="python:myapp/1.0 (by u/yourusername)",
)

for post in client.iter_media(RedditParams(
    subreddit="EarthPorn",
    media_type=MediaType.IMAGE,
)):
    client.download(post, path=f"{post.id}.jpg")

Next steps