Skip to content

Instantly share code, notes, and snippets.

@samwolf1982
Created March 10, 2025 22:46
Show Gist options
  • Select an option

  • Save samwolf1982/2bf6c0e5a3e7d9aa859ab5aa44bbce19 to your computer and use it in GitHub Desktop.

Select an option

Save samwolf1982/2bf6c0e5a3e7d9aa859ab5aa44bbce19 to your computer and use it in GitHub Desktop.
bash for pexels
#!/bin/bash
# Перевірка переданих аргументів
if [ -z "$1" ]; then
echo "❌ Помилка: Вкажіть тег для пошуку!"
echo "📌 Приклад використання: ./download_pexels.sh \"beautiful sunset\" large"
exit 1
fi
# Pexels API ключ (замініть на свій)
API_KEY="qwerty"
# Тема пошуку (коректне кодування URL)
QUERY=$(echo "$1" | jq -sRr @uri)
# Розмір зображення (за замовчуванням "original", можна передати "large", "medium", "small")
SIZE="${2:-original}"
# Директорія для збереження
FOLDER="/home/sam/Pictures/tmp/pexel"
# Кількість зображень на запит
PER_PAGE=7
# Кількість сторінок
TOTAL_PAGES=5
# Створюємо директорію, якщо її немає
mkdir -p "$FOLDER"
# Лічильник завантажених файлів
COUNTER=1
# Цикл по сторінках
for PAGE in $(seq 1 $TOTAL_PAGES); do
echo "🔄 Отримання сторінки $PAGE з $TOTAL_PAGES..."
echo "https://api.pexels.com/v1/search?query=${QUERY}&per_page=${PER_PAGE}&page=${PAGE}"
# Отримання списку зображень у JSON-форматі
JSON_RESPONSE=$(curl -s -H "Authorization: $API_KEY" \
"https://api.pexels.com/v1/search?query=${QUERY}&per_page=${PER_PAGE}&page=${PAGE}")
# Перевірка на помилки API
if echo "$JSON_RESPONSE" | jq -e .error > /dev/null; then
echo "❌ Помилка API: $(echo "$JSON_RESPONSE" | jq -r .error)"
exit 1
fi
# Витягуємо список URL фото заданого розміру
IMAGE_URLS=$(echo "$JSON_RESPONSE" | jq -r ".photos[].src.$SIZE")
# Якщо немає зображень, завершуємо цикл
if [ -z "$IMAGE_URLS" ]; then
echo "⚠️ Немає більше зображень! Завершую завантаження."
break
fi
# Завантаження зображень
while IFS= read -r URL; do
FILE_NAME="${FOLDER}/$(echo "$1" | tr ' ' '_')_${SIZE}_${COUNTER}.jpg"
curl -s "$URL" -o "$FILE_NAME"
echo "✅ Завантажено: $FILE_NAME"
((COUNTER++))
done <<< "$IMAGE_URLS"
done
echo "🎉 Завантаження завершено! Всього файлів: $((COUNTER-1))"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment