본문 바로가기
파이썬

픽사베이 사이트 무료이미지 API 이용하는 방법

by 진심블로그 2024. 3. 11.

안녕하세요. 파이신입니다.

 

오늘은 픽사베이 무료이미지를 검색하고 다운로드할 수 있는 API에 대해서 알아봅니다.

 

- 본 글은 파이썬 중급자 이상이 읽어보기에 적합니다

- 코드는 아래에서 바로 확인 가능합니다

 

우선 구글에서 픽사베이로 검색합니다.

 

무료이미지 사이트는 여러 개가 있는데,

pixabay 상업적 이용이 아닌 무료로 이용하는 것이기에 편하게 픽사베이 사이트로 들어갑니다.

 

 

 

픽사베이 저작권에 대해 궁금한 분들은 픽사베이 사이트 우측 하단의

 

에서 자주 묻는 질문을 들어가 보면,

여러 가지 경우에 대한 저작권을 설명하고 있으니 참고하면 됩니다.

 

다만, 위에서 보이는 것처럼, '출처 안 밝혀도 됨.'을 표시한 것처럼,

픽사베이는 기본적으로 무료입니다.

픽사베이 API도 마찬가지로 무료입니다.

 

픽사베이에 들어가면 첫 화면이 보입니다.

 

 

 

첫 화면의 우측 하단에 보면 위에 위에 이미지에서 보이는 것처럼 API항목이 있습니다.

 

 

가운데 녹색창의 Get Started를 누릅니다.

 

 

여러가지 내용이 나오는데, 우선 중요하게 봐야 할 부분이 Rate Limit입니다.

 

 

 

1분에 100개의 query를 받는다고 되어있습니다. 100 QPM이라는 뜻입니다.

 

사실 멀티프로세서나 멀티쓰레드를 이용해서 대량으로 작업을 하지 않는다면,

API의 처리 및 응답속도등을 고려했을 때 일반 pc기준으로 1분에 100개를

던질 일은 없다고 봅니다.

 

이 이상 사용하게 된다면, 본 블로그의 다른 글을 참고해 보세요.

 

API화면에서 밑으로 내려보면, API 규약들이 보입니다.

 

 

 

일부 내용만을 잘라서 보이고 있는데,

자세한 내용은 전체 페이지에서 모두 확인할 수 있습니다.

 

여기서 중요한 부분은 회원가입 및 로그인입니다.

가입을 해서 API key를 받아야 합니다.

 

 

 

처음 왔으니 가입을 해봅니다. Sing up을 누르면 됩니다.

 

 

 

 

구글로 가입을 하면,

 

 

계속을 누릅니다.

 

가입화면이 아래와 같이 나옵니다.

 

 

 

 

 

적당히 입력하고 아래에 있는 저장을 누릅니다.

저장을 눌렀는데도 계속 같은 화면에 있는 것이 정상입니다.

저장된 겁니다.

 

픽사베이의 홈페이지로 다시 돌아갑니다.

 

 

 

우측 상단에 있는 둘러보기를 눌러서 아래쪽에 있는 API를 누릅니다.

 

아까 봤던 화면이 똑같이 나타나는데, 화면을 내려보면

 

 

 

이제 Your API key :다음에 발급받은 key가 보입니다.

 

이제 API key까지 발급을 완료했습니다.

 

사용을 해볼까요?

 

우선 픽사베이에서 제공하는 기본 템플릿과 데이터를 이용해 보겠습니다.

https://pixabay.com/api/?key=42810915-0850fc771292bf3928512b972&
	q=yellow+flowers&image_type=photo

 

파라미터 q에 검색을 원하는 단어를 조합해서 넘깁니다.

여기서는 yellow와 flowers입니다.

검색대상은 사진입니다. image_type=photo.

 

이렇게 하면 json 형태의 답을 다음과 같이 받습니다.

{
    "total": 35536,
    "totalHits": 500,
    "hits": [
        {
            "id": 8595521,
            "pageURL": "https://pixabay.com/photos/forsythia-flowers-branch-8595521/",
            "type": "photo",
            "tags": "forsythia, flowers, flower background",
            "previewURL": "https://cdn.pixabay.com/photo...orsythia-8595521_150.jpg",
            "previewWidth": 112,
            "previewHeight": 150,
            "webformatURL": "https://pixabay.com/get/g9c...bfbc2509e_640.jpg",
            "webformatWidth": 480,
            "webformatHeight": 640,
            "largeImageURL": "https://pixabay.com/get/g11c50...342_1280.jpg",
            "imageWidth": 3024,
            "imageHeight": 4032,
            "imageSize": 970371,
            "views": 13421,
            "downloads": 10394,
            "collections": 172,
            "likes": 1001,
            "comments": 36,
            "user_id": 10328767,
            "user": "Mylene2401",
            "userImageURL": "https://cdn.pixabay.com/user/2020/0...x250.jpeg"
        },
        {
            "id": 3063284,
            "pageURL": "https://pixabay.com/photos/rose-flower...ral-noble-3063284/",
            "type": "photo",
            "tags": "rose, flower, petal",
            "previewURL": "https://cdn.pixabay.com/photo/2018/01/0...3284_150.jpg",
            "previewWidth": 150,
            "previewHeight": 99,
            "webformatURL": "https://pixabay.com/get/gb1c7d2b...6d02_640.jpg",
            "webformatWidth": 640,
            "webformatHeight": 426,
            "largeImageURL": "https://pixabay.com/get/g57eaa7e3...ebac85cd7_1280.jpg",
            "imageWidth": 6000,
            "imageHeight": 4000,
            "imageSize": 3574625,
            "views": 1188751,

 

화면 길이상 오른쪽을 잘라내었는데, json 파싱 해서 결과물을 가져오면 됩니다.

 

파싱 하기 전에,

 

해당 url들을 브라우저에 입력해서 보면 어떤 결과물들인지 미리 알 수 있어 편합니다.

 

다음 시간엔 json response에서 필요한 이미지들만을 선별해서 가져와 보겠습니다.