Giter VIP home page Giter VIP logo

gifs's Introduction

gifs.com Golang Package

Build Status Coverage Status GoDoc Go Report Card

Golang is awesome, and so are gifs. Using gifs.com API you can create gifs from many many different sources. Gifs.com API is already easy, but this simplifies it even more. You'll be able to create basic gifs, and more complex functionality based on your application.

✅ Create gifs via URL (youtube, vimeo, remote mp4, etc)

✅ Upload mp4/image & Download gif

✅ Bulk Upload

✅ Trim gif (start/end in seconds)

Gifs.com allows you to send any instagram, twitter, facebook, vine, .gif, .mp4, .webm, giphy, imgur, gfycat, or streamable links. 👍

Install

go get -u github.com/hunterlong/gifs
import "github.com/hunterlong/gifs"

Simple Usage

Be 😎 and use API keys for added features and limits. gifs.com Authentication API does not require keys.

gifs.Authentication = "gifs00YOURkey2929"

Let's make a gif from a YouTube video.

input := &gifs.New{
  Source: "https://www.youtube.com/watch?v=dDmQ0byhus4",
}

response := input.Create()

fmt.Println("Gifs.com Gif URL: ",response.Files.Gif)

Advanced Usage

You can add all the gifs.com attributes and even tag the gif with a user. You can trim your gif by inserting start and end in seconds. There's even a 'safe' option.

input := &gifs.New{
  Source: "https://www.youtube.com/watch?v=dDmQ0byhus4",
  Title: "Cute Kitten Drinking From Sink",
  Tags: []string{"cute","kitten","drinking"},
  Attribution: &Attribution{
    Site: "twitter",
    User: "stronghold2d",
  },
  Trim: &Trim{
    Start: 10,
    End:   20,
  },
  Safe: true,
}

response, err := input.Create()
if err != nil {
    panic(err)
}

fmt.Println("Gif URL: ", response.Files.Gif)
fmt.Println("Jpg URL: ", response.Files.Jpg)
fmt.Println("Mp4 URL: ", response.Files.Mp4)
fmt.Println("Page URL: ", response.Page)
fmt.Println("oEmbed URL: ", response.Oembed)
fmt.Println("Embed URL: ", response.Embed)

Saving gif

You've seen the responses from gifs.com API, but now I'd like to download the gif and save it locally.

file := &gifs.New{
    Source: "https://www.youtube.com/watch?v=V6wrI6DEZFk",
}

response, _ := file.Create()

gifFile := response.SaveGif()

fmt.Println("Saved gif: ", gifFile)

Upload MP4

Oh whaaat. I have a mp4 file named 'video.mp4' in my current directory and I'd love to have it as a gif.

input := &gifs.New{
    File:  "video.mp4",
    Title: "Nice Video Title",
    Tags:  []string{"gifs", "are", "awesome"},
}

response, err := input.Upload()
if err != nil {
    panic(err)
}

fmt.Println("Gif URL: ", response.Files.Gif)

Bulk Upload

Now I've got the hang of it, I don't need to go one-by-one. Include an array of New files, and Upload! The response will give you an array for each uploaded file.

// work in progress!
files := []gifs.New{
    {
        File:  "video1.mp4",
        Title: "New Video",
    },
    {
        File:  "video2.mp4",
        Title: "New Video 2",
    },
    {
        File:  "video3.mp4",
        Title: "New Video 3",
    },
}

bulk := gifs.Bulk{
    New: files,
}

response, err := bulk.Upload()
if err != nil {
    panic(err)
}

for k, v := range response {
    fmt.Println("File #", k, " Uploaded. File Gif: ", v.Files.Gif)
}

fmt.Println("Uploaded", len(response), "Files")

License

Fun project 💥 How often do you see gifs on github!? Released MIT license with testing.

gifs's People

Contributors

hunterlong avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.