Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save robgon-art/09211376acf0460fe5f4c8aab1ba1a24 to your computer and use it in GitHub Desktop.
Save robgon-art/09211376acf0460fe5f4c8aab1ba1a24 to your computer and use it in GitHub Desktop.
# robgonsalves
# Write some Python code to get ULRs to all images in my Flickr account.
# ChatGPT
# To get URLs to all images in your Flickr account, you can use the Flickr API and the flickr.photos.search method to retrieve the
# list of photos, and then construct the URLs based on the photo IDs and server IDs.
# Here's an example Python code that retrieves the URLs to all photos in your Flickr account using the flickrapi package:
import flickrapi
# Replace with your own Flickr API key and secret
FLICKR_API_KEY = "your-api-key"
FLICKR_API_SECRET = "your-api-secret"
# Authenticate with the Flickr API
flickr = flickrapi.FlickrAPI(FLICKR_API_KEY, FLICKR_API_SECRET, format='parsed-json')
# Replace with your own Flickr user ID
user_id = "your-user-id"
# Retrieve the list of photos
photos = flickr.photos.search(user_id=user_id, per_page=500)
# Construct the URLs to the photos
photo_urls = []
for photo in photos['photos']['photo']:
photo_url = f"https://live.staticflickr.com/{photo['server']}/{photo['id']}_{photo['secret']}.jpg"
photo_urls.append(photo_url)
# Print the URLs to the photos
for url in photo_urls:
print(url)
# In this example, you'll need to replace the FLICKR_API_KEY, FLICKR_API_SECRET, and user_id variables with your own Flickr API key,
# secret, and user ID. The per_page parameter controls how many photos are returned per page (the maximum value is 500). The photo_urls
# list contains the URLs to all photos in your account, and you can modify the code to save the URLs to a file or use them in other ways.
# robgonsalves
# where do I get by api key and secret?
# To obtain an API key and secret for Flickr, you need to follow these steps:
# Go to the Flickr developer website and sign in with your Flickr account.
# Click on the "Create App" button.
# Fill in the required information about your app, including its name, description, and website.
# Select the "Non-commercial" option if you're developing the app for personal or non-commercial use. Otherwise, select the
# "Commercial" option and provide additional information about your company and the purpose of the app.
# Once you've filled in all the required information, click on the "Submit" button.
# After your app is created, you'll be taken to a page that displays your API key and secret. These are the values you need to use
# to authenticate with the Flickr API in your Python code.
# Make sure to keep your API key and secret safe and secure, as they allow access to your Flickr account and data.
# Note that you may need to grant your app additional permissions to access your photos or other data in your Flickr account. You
# can do this by going to the "Auth" tab in your app settings and following the instructions to authorize your app.
# robgonsalves
# how do I install the flickr api?
# ChatGPT
# To install the flickrapi package, you can use pip, which is a package installer for Python. Here are the steps:
# Open a command prompt or terminal window.
# Make sure you have pip installed by running the command pip --version. If pip is not installed, you can follow the instructions at https://pip.pypa.io/en/stable/installing/ to install it.
# Run the command pip install flickrapi to install the flickrapi package.
# Wait for the installation to complete. You should see a message indicating that the package was successfully installed.
# You're now ready to use the flickrapi package in your Python code.
# Here's an example Python code that uses the flickrapi package to authenticate with the Flickr API:
import flickrapi
# Replace with your own Flickr API key and secret
FLICKR_API_KEY = "your-api-key"
FLICKR_API_SECRET = "your-api-secret"
# Authenticate with the Flickr API
flickr = flickrapi.FlickrAPI(FLICKR_API_KEY, FLICKR_API_SECRET, format='parsed-json')
# Replace with your own Flickr user ID
user_id = "your-user-id"
# Example: get the user's public photos
photos = flickr.people.getPublicPhotos(user_id=user_id)
# Example: print the number of public photos
num_photos = photos['photos']['total']
print(f"Number of photos: {num_photos}")
# In this example, you'll need to replace the FLICKR_API_KEY, FLICKR_API_SECRET, and user_id variables with your own values. The
# flickrapi.FlickrAPI function creates an instance of the FlickrAPI class, which you can use to make requests to the Flickr API.
# The format parameter specifies the format of the response (in this case, JSON). The flickr.people.getPublicPhotos function retrieves
# the user's public photos, and the photos variable contains the response from the Flickr API. You can modify the code to perform other
# actions, such as uploading photos or retrieving information about specific photos.
# robgonsalves
# I'm getting an error, FlickrError: Error: 2: Unknown user
# ChatGPT
# The "Unknown user" error indicates that the user_id you provided in the code is not valid or does not exist on Flickr. Here are some
# things you can try to fix the error:
# Check that you've entered the correct user_id. You can find your user_id by going to your Flickr photostream, right-clicking on a
# photo, and selecting "Copy Link Address" or "Copy Image Address". The user_id is the string of numbers that appears after the last
# slash ("/") in the URL.
# Make sure that your Flickr account is not set to private. If your account is private, the Flickr API will
# not be able to access your photos or other data.
# Verify that your Flickr API key and secret are correct. You can check your API key and secret in your Flickr developer account
# settings.
# Make sure that your Flickr account is not suspended or deleted. If your account is suspended or deleted, the Flickr API will not
# be able to access your photos or other data.
# Try using the flickr.people.findByUsername function instead of flickr.people.getInfo. This function takes a Flickr username as
# input instead of a user_id. Here's an example:
import flickrapi
# Replace with your own Flickr API key and secret
FLICKR_API_KEY = "your-api-key"
FLICKR_API_SECRET = "your-api-secret"
# Authenticate with the Flickr API
flickr = flickrapi.FlickrAPI(FLICKR_API_KEY, FLICKR_API_SECRET, format='parsed-json')
# Replace with your own Flickr username
username = "your-username"
# Find the user's ID using their username
user = flickr.people.findByUsername(username=username)
user_id = user['user']['id']
# Example: get the user's public photos
photos = flickr.people.getPublicPhotos(user_id=user_id)
# Example: print the number of public photos
num_photos = photos['photos']['total']
print(f"Number of photos: {num_photos}")
# In this example, you'll need to replace the FLICKR_API_KEY, FLICKR_API_SECRET, and username variables with your own values. The
# flickr.people.findByUsername function retrieves the user's ID using their username, and the user_id variable is used to make other
# API requests.
# robgonsalves
# Write the Python code to use the API to download all the images to a local folder.
# ChatGPT
# To download all the images from your Flickr account using the Flickr API and save them to a local folder, you can use the
# flickr.photos.search method to retrieve the list of photos, and then use the urlretrieve function from the urllib.request module
# to download each photo.
# Here's an example Python code that downloads all the photos from your Flickr account and saves them to a local folder:
import flickrapi
import urllib.request
import os
# Replace with your own Flickr API key and secret
FLICKR_API_KEY = "your-api-key"
FLICKR_API_SECRET = "your-api-secret"
# Replace with your own Flickr user ID
user_id = "your-user-id"
# Authenticate with the Flickr API
flickr = flickrapi.FlickrAPI(FLICKR_API_KEY, FLICKR_API_SECRET, format='parsed-json')
# Retrieve the list of photos
photos = flickr.photos.search(user_id=user_id, per_page=500)
# Create a folder to save the photos
folder = "photos"
if not os.path.exists(folder):
os.makedirs(folder)
# Download each photo and save it to the folder
for photo in photos['photos']['photo']:
photo_url = f"https://live.staticflickr.com/{photo['server']}/{photo['id']}_{photo['secret']}.jpg"
filename = os.path.join(folder, f"{photo['id']}.jpg")
urllib.request.urlretrieve(photo_url, filename)
print(f"Downloaded {filename}")
print("All photos downloaded")
# In this example, you'll need to replace the FLICKR_API_KEY, FLICKR_API_SECRET, and user_id variables with your own values.
# The per_page parameter controls how many photos are returned per page (the maximum value is 500). The folder variable specifies
# the name of the folder where the photos will be saved. The os.makedirs function creates the folder if it doesn't already exist.
# The urlretrieve function downloads each photo and saves it to a file in the folder specified by the filename variable. The print
#statements display messages indicating which photos have been downloaded. You can modify the code to download photos with specific
# tags, or to download photos in different sizes or formats.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment