All Projects → hunterlong → gifs

hunterlong / gifs

Licence: MIT license
Gifs.com API golang package to create Gifs from youtube, vimeo, remote mp4 and more!

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to gifs

google-maps-at-88-mph
Google Maps keeps old satellite imagery around for a while – this tool collects what's available for a user-specified region in the form of a GIF.
Stars: ✭ 93 (+342.86%)
Mutual labels:  gifs
Abmediaview
Media view which subclasses UIImageView, and can display & load images, videos, GIFs, and audio and from the web, and has functionality to minimize from fullscreen, as well as show GIF previews for videos.
Stars: ✭ 79 (+276.19%)
Mutual labels:  gifs
Givegif
GIFs on the command line
Stars: ✭ 212 (+909.52%)
Mutual labels:  gifs
giphy-js
Official GIPHY packages
Stars: ✭ 101 (+380.95%)
Mutual labels:  gifs
Gifcurry
😎 The open-source, Haskell-built video editor for GIF makers.
Stars: ✭ 830 (+3852.38%)
Mutual labels:  gifs
Glitch This
📷 Glitchify images and GIF - with highly customizable options!
Stars: ✭ 1,396 (+6547.62%)
Mutual labels:  gifs
vredditshare
A Reddit bot that reuploads Reddit video
Stars: ✭ 17 (-19.05%)
Mutual labels:  gifs
Term Sheets
Create animated terminal presentations. Export as SVG, animated GIF, or HTML+CSS
Stars: ✭ 243 (+1057.14%)
Mutual labels:  gifs
Pgn2gif
A small tool that generates gif of a chess game
Stars: ✭ 65 (+209.52%)
Mutual labels:  gifs
Pornsearch
Easy way to search for porn content!
Stars: ✭ 156 (+642.86%)
Mutual labels:  gifs
Emoticongifkeyboard
An advance Emoticons & GIF keyboard.
Stars: ✭ 261 (+1142.86%)
Mutual labels:  gifs
Giffy dialog
A Flutter package for a quick and handy giffy dialog.
Stars: ✭ 517 (+2361.9%)
Mutual labels:  gifs
Gify
JavaScript API for decoding/parsing information from animated GIFs using ArrayBuffers.
Stars: ✭ 124 (+490.48%)
Mutual labels:  gifs
gifted
Turn any short video into an animated GIF quickly and easily.
Stars: ✭ 15 (-28.57%)
Mutual labels:  gifs
Pi Timelapse
Time-lapse app for Raspberry Pi computers.
Stars: ✭ 220 (+947.62%)
Mutual labels:  gifs
gifs
gifs for thought
Stars: ✭ 19 (-9.52%)
Mutual labels:  gifs
Freezeframe.js
freezeframe.js is a library that pauses animated .gifs and enables them to animate on mouse hover / mouse click / touch event, or with trigger / release functions.
Stars: ✭ 1,233 (+5771.43%)
Mutual labels:  gifs
Gif For Cli
opensource.googleblog.com/2018/06/tenor-gif-for-cli.html
Stars: ✭ 2,772 (+13100%)
Mutual labels:  gifs
Meme
A command line utility for creating memes
Stars: ✭ 221 (+952.38%)
Mutual labels:  gifs
Gifs
😂 📷 🎇 Storage place for all mah gifs.
Stars: ✭ 1,619 (+7609.52%)
Mutual labels:  gifs

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].