Skip to main content

test Documentation Status codecov License: MIT Code style: black Imports: isort

giphpy

giphpy was written to be a hand-spun alternative to the existing GIPHY client.

You should use it because:

  • it uses pydantic for lightning fast data serialization
  • it uses httpx to provide both a sync and async api

Installation

pip install giphpy

or for poetry

poetry add giphpy

Help

See the documentation for more details.

Example

giphpy is extremely easy to use. By setting serialize=True, you get a pydantic model returned to you instead of a httpx.Response object.

Example:

import giphpy

gif = giphpy.gif_translate("spongebob", api_key="xxx", serialize=True)
print(gif)

This will return a GifResponse object:

GifResponse(
        data=Gif(
            type='gif',
            id='o6TTJ6ak4A97a',
            url='https://giphy.com/gifs/spongebob-squarepants-squidward-nose-o6TTJ6ak4A97a',
            slug='spongebob-squarepants-squidward-nose-o6TTJ6ak4A97a',
            bitly_gif_url='http://gph.is/YBiYub',
            bitly_url='http://gph.is/YBiYub',
            embed_url='https://giphy.com/embed/o6TTJ6ak4A97a',
            username='spongebob',
            source='',
            title='Nose GIF by SpongeBob SquarePants',
            rating=<Rating.g: 'g'>,
            content_url='',
            source_tld='',
            source_post_url='',
            is_sticker=False,
            import_datetime=datetime.datetime(1970, 1, 1, 0, 0),
            trending_datetime=datetime.datetime(2017, 12, 21, 16, 0, 1),
            images=Images(
                downsized=DownsizedImage(
                    size='430185',
                    height='336',
                    width='500',
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/giphy.gif?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68'
                        'p60zymuq6950uz&rid=giphy.gif&ct=g'
                    ),
                ),
                downsized_large=DownsizedLargeImage(
                    size='430185',
                    height='336',
                    width='500',
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/giphy.gif?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68'
                        'p60zymuq6950uz&rid=giphy.gif&ct=g'
                    ),
                ),
                downsized_medium=DownsizedMediumImage(
                    size='430185',
                    height='336',
                    width='500',
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/giphy.gif?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68'
                        'p60zymuq6950uz&rid=giphy.gif&ct=g'
                    ),
                ),
                downsized_small=DownsizedSmallImage(
                    mp4_size='162356',
                    mp4=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/giphy-downsized-small.mp4?cid=9fbc9b3fgy0n3l2a9s'
                        'mslyf34wgd2s5z68p60zymuq6950uz&rid=giphy-downsized-small.mp4&ct=g'
                    ),
                    height='336',
                    width='500',
                ),
                downsized_still=DownsizedStillImage(
                    height='336',
                    width='500',
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/giphy_s.gif?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z'
                        '68p60zymuq6950uz&rid=giphy_s.gif&ct=g'
                    ),
                ),
                fixed_height=FixedHeightImage(
                    webp_size='112580',
                    webp=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/200.webp?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68p'
                        '60zymuq6950uz&rid=200.webp&ct=g'
                    ),
                    mp4_size='36280',
                    mp4=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/200.mp4?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68p6'
                        '0zymuq6950uz&rid=200.mp4&ct=g'
                    ),
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/200.gif?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68p6'
                        '0zymuq6950uz&rid=200.gif&ct=g'
                    ),
                    height='200',
                    width='298',
                    size='188398',
                ),
                fixed_height_downsampled=FixedHeightDownsampledImage(
                    webp_size='118418',
                    webp=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/200_d.webp?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z6'
                        '8p60zymuq6950uz&rid=200_d.webp&ct=g'
                    ),
                    size='166021',
                    height='200',
                    width='298',
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/200_d.gif?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68'
                        'p60zymuq6950uz&rid=200_d.gif&ct=g'
                    ),
                ),
                fixed_height_small=FixedHeightSmallImage(
                    webp_size='38138',
                    webp=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/100.webp?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68p'
                        '60zymuq6950uz&rid=100.webp&ct=g'
                    ),
                    mp4_size='12397',
                    mp4=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/100.mp4?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68p6'
                        '0zymuq6950uz&rid=100.mp4&ct=g'
                    ),
                    size='54532',
                    height='100',
                    width='149',
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/100.gif?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68p6'
                        '0zymuq6950uz&rid=100.gif&ct=g'
                    ),
                ),
                fixed_height_small_still=FixedHeightSmallStillImage(
                    height='100',
                    width='149',
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/100_s.gif?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68'
                        'p60zymuq6950uz&rid=100_s.gif&ct=g'
                    ),
                ),
                fixed_height_still=FixedHeightStillImage(
                    height='200',
                    width='298',
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/200_s.gif?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68'
                        'p60zymuq6950uz&rid=200_s.gif&ct=g'
                    ),
                ),
                fixed_width=FixedWidthImage(
                    webp_size='61756',
                    webp=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/200w.webp?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68'
                        'p60zymuq6950uz&rid=200w.webp&ct=g'
                    ),
                    mp4_size='19095',
                    mp4=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/200w.mp4?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68p'
                        '60zymuq6950uz&rid=200w.mp4&ct=g'
                    ),
                    size='87701',
                    height='134',
                    width='200',
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/200w.gif?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68p'
                        '60zymuq6950uz&rid=200w.gif&ct=g'
                    ),
                ),
                fixed_width_downsampled=FixedWidthDownsampledImage(
                    webp_size='62046',
                    webp=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/200w_d.webp?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z'
                        '68p60zymuq6950uz&rid=200w_d.webp&ct=g'
                    ),
                    size='78853',
                    height='134',
                    width='200',
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/200w_d.gif?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z6'
                        '8p60zymuq6950uz&rid=200w_d.gif&ct=g'
                    ),
                ),
                fixed_width_small=FixedWidthSmallImage(
                    webp_size='19028',
                    webp=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/100w.webp?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68'
                        'p60zymuq6950uz&rid=100w.webp&ct=g'
                    ),
                    mp4_size='7319',
                    mp4=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/100w.mp4?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68p'
                        '60zymuq6950uz&rid=100w.mp4&ct=g'
                    ),
                    size='25141',
                    height='67',
                    width='100',
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/100w.gif?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68p'
                        '60zymuq6950uz&rid=100w.gif&ct=g'
                    ),
                ),
                fixed_width_small_still=FixedWidthSmallStillImage(
                    height='67',
                    width='100',
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/100w_s.gif?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z6'
                        '8p60zymuq6950uz&rid=100w_s.gif&ct=g'
                    ),
                ),
                fixed_width_still=FixedWidthStillImage(
                    height='134',
                    width='200',
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/200w_s.gif?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z6'
                        '8p60zymuq6950uz&rid=200w_s.gif&ct=g'
                    ),
                ),
                looping=LoopingImage(
                    mp4=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/giphy-loop.mp4?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2'
                        's5z68p60zymuq6950uz&rid=giphy-loop.mp4&ct=g'
                    ),
                ),
                original_still=OriginalStillImage(
                    height='336',
                    width='500',
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/giphy_s.gif?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z'
                        '68p60zymuq6950uz&rid=giphy_s.gif&ct=g'
                    ),
                ),
                original_mp4=OriginalMp4Image(
                    mp4_size='123856',
                    mp4=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/giphy.mp4?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z68'
                        'p60zymuq6950uz&rid=giphy.mp4&ct=g'
                    ),
                    height='322',
                    width='480',
                ),
                preview=PreviewImage(
                    height='184',
                    width='273',
                    mp4_size='21235',
                    mp4=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/giphy-preview.mp4?cid=9fbc9b3fgy0n3l2a9smslyf34w'
                        'gd2s5z68p60zymuq6950uz&rid=giphy-preview.mp4&ct=g'
                    ),
                ),
                preview_gif=PreviewGifImage(
                    height='90',
                    width='134',
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/giphy-preview.gif?cid=9fbc9b3fgy0n3l2a9smslyf34w'
                        'gd2s5z68p60zymuq6950uz&rid=giphy-preview.gif&ct=g'
                    ),
                ),
                preview_webp=PreviewWebpImage(
                    size='34118',
                    height='94',
                    width='140',
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/giphy-preview.webp?cid=9fbc9b3fgy0n3l2a9smslyf34'
                        'wgd2s5z68p60zymuq6950uz&rid=giphy-preview.webp&ct=g'
                    ),
                ),
                still_480w=Still480w(
                    height='323',
                    width='480',
                    url=(
                        'https://media3.giphy.com/media/o6TTJ6ak4A97a/480w_s.jpg?cid=9fbc9b3fgy0n3l2a9smslyf34wgd2s5z6'
                        '8p60zymuq6950uz&rid=480w_s.jpg&ct=g'
                    ),
                    size='430185',
                ),
            ),
            user=User(
                avatar_url='https://media2.giphy.com/avatars/spongebob/U4nimQFVGMqR.jpg',
                banner_image='',
                banner_url='',
                profile_url='https://giphy.com/spongebob/',
                username='spongebob',
                display_name='SpongeBob SquarePants',
                description='Who gifs in a pineapple under the sea?',
                instagram_url='',
                website_url='http://www.spongebob.com',
                is_verified=True,
            ),
            analytics_response_payload=None,
            analytics=None,
        ),
        meta=Meta(
            status=200,
            msg='OK',
            response_id='gy0n3l2a9smslyf34wgd2s5z68p60zymuq6950uz',
        ),
    )

Buy me a coffee

If you find this project useful, consider buying me a coffee!

Buy Me A Coffee

Metadata

Release files for giphpy 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for giphpy 0.1.2
File Size Uploaded
giphpy-0.1.2.tar.gz 13.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for giphpy 0.1.2
File Interpreter ABI Platform
giphpy-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 26.1 kB

Release files / giphpy-0.1.2.tar.gz

Download URL giphpy-0.1.2.tar.gz
Size 13.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3796bfc50c97482f6cc901e256fe6da2038c574ba88ba1cb336e5821950cc016
BLAKE2b-256 checksum
How to use checksums
efbf2e8f134e8acadff34db7217b1e0652e517f5333db9aae4e7f15dcf7c7881
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.9.16 Linux/5.15.0-1031-azure

Release files / giphpy-0.1.2-py3-none-any.whl

Download URL giphpy-0.1.2-py3-none-any.whl
Size 12.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1e62b34a820f36f132af382f66cf6387efa5cb81c1430189609c19e8dda6cb4f
BLAKE2b-256 checksum
How to use checksums
ad04a2448eddf80f8a3c7163d481b8d5eeaea8a35cfe11997accf9f0b1c96d1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.9.16 Linux/5.15.0-1031-azure

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page