Created
March 10, 2025 22:46
-
-
Save samwolf1982/2bf6c0e5a3e7d9aa859ab5aa44bbce19 to your computer and use it in GitHub Desktop.
bash for pexels
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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