This package provides multiple Flickr content loaders for Astro's content layer. Most loaders correspond to a single Flickr API endpoint, however some loaders call multiple one for better results. The data returned from Flickr is normalized and cleaned up, so that each loader's response is similar and easy to work with.
Want to see an overview of all my loaders? Visit astro-loaders.lekoarts.de ✨
- Astro 5 or later installed
- A Flickr API key
- Create an account on Flickr, go to App Garden to register an app, and copy the
Key
- Create an account on Flickr, go to App Garden to register an app, and copy the
# npm
npm install @lekoarts/flickr-loader
# yarn
yarn add @lekoarts/flickr-loader
# pnpm
pnpm install @lekoarts/flickr-loader
Import @lekoarts/flickr-loader
into src/content.config.ts
and define your collections. You can import various loaders that correspond to their respective Flickr API endpoints.
Important: You need to either define the Flickr API key as an environment variable (FLICKR_API_KEY
) or pass it to every loader with the api_key
argument.
Return photos from the given user's photostream. Only photos visible to the calling user will be returned.
Flickr API: flickr.people.getPhotos
-
username
(string)
import { flickrPeopleGetPhotosLoader } from '@lekoarts/flickr-loader'
const peopleGetPhotos = defineCollection({
loader: flickrPeopleGetPhotosLoader({
username: 'flickr-username',
}),
})
Returns the photosets belonging to the specified user.
Flickr API: flickr.photosets.getList
-
username
(string)
import { flickrPhotosetsGetListLoader } from '@lekoarts/flickr-loader'
const photosetsGetList = defineCollection({
loader: flickrPhotosetsGetListLoader({
username: 'flickr-username',
}),
})
Get the list of photos in a photoset.
Flickr API: flickr.photosets.getPhotos
-
username
(string) -
photoset_id
(string)
import { flickrPhotosetsGetPhotosLoader } from '@lekoarts/flickr-loader'
const photosetsGetPhotos = defineCollection({
loader: flickrPhotosetsGetPhotosLoader({
username: 'flickr-username',
photoset_id: '72177720313250218',
}),
})
This loader combines the flickrPhotosetsGetListLoader()
and flickrPhotosetsGetPhotosLoader()
loaders to get the most out of photosets. You'll get back the photosets and their list of photos.
Flickr API: flickr.photosets.getList
+ flickr.photosets.getPhotos
-
username
(string)
-
in
(string[]) - Array of photoset IDs to match against -
nin
(string[]) - Array of photoset IDs to exclude
Fetching all photosets a user has.
import { flickrPhotosetsGetListWithPhotosLoader } from '@lekoarts/flickr-loader'
const photosetsGetListWithPhotos = defineCollection({
loader: flickrPhotosetsGetListWithPhotosLoader({
username: 'flickr-username',
}),
})
Only fetching the photosets 123
and 456
.
import { flickrPhotosetsGetListWithPhotosLoader } from '@lekoarts/flickr-loader'
const photosetsGetListWithPhotos = defineCollection({
loader: flickrPhotosetsGetListWithPhotosLoader({
username: 'flickr-username',
in: ['123', '456'],
}),
})
Excluding the photosets 789
and 001
.
import { flickrPhotosetsGetListWithPhotosLoader } from '@lekoarts/flickr-loader'
const photosetsGetListWithPhotos = defineCollection({
loader: flickrPhotosetsGetListWithPhotosLoader({
username: 'flickr-username',
nin: ['789', '001'],
}),
})