Package: embedly2
This is a fork of the unmaintainedembedly-pythonlibrary. It aims to keep the package installable and functional
on new versions of Python.The original README follows:Python library for interacting with Embedly’s API. To get started sign up for
a key atembed.ly/signup.InstallInstall withPip:pip install embedly2This library supports Python 3.6 through 3.10.Getting StartedThis library is meant to be a dead simple way to interact with the Embedly API.
There are only 2 main objects, theEmbedlyclient and theUrlresponse
model. Here is a simple example and then we will go into the objects:>>> from embedly import Embedly
>>> client = Embedly(:key)
>>> obj = client.oembed('http://instagram.com/p/BL7ti/')
>>> obj['type']
u'photo'
>>> obj['url']
u'http://images.ak.instagram.com/media/2011/01/24/cdd759a319184cb79793506607ff5746_7.jpg'

>>> obj = client.oembed('http://instagram.com/error/error/')
>>> obj['error']
TrueEmbedly ClientThe Embedly client is a object that takes in a key and optional User Agent
and timeout parameters then handles all the interactions and HTTP requests
to Embedly. To initialize the object, you’ll need the key that you got when
you signed up for Embedly.>>> from embedly import Embedly
>>> client = Embedly('key')
>>> client2 = Embedly('key', 'Mozilla/5.0 (compatible; example-org;)')
>>> client3 = Embedly('key', 'Mozilla/5.0 (compatible; example-org;)', 30)
>>> client4 = Embedly('key', timeout=10, user_agent='Mozilla/5.0 (compatible; example-org;)')The client object now has a bunch of different methods that you can use.oembedCorresponds to theoEmbed endpoint. Passes back an object
that allows you to retrieve a title, thumbnail, description and the embed
html:>>> client.oembed('http://vimeo.com/18150336')
<embedly.models.Url at 0x10223d950>extractCorresponds to theExtract endpoint. Passes back an
object that allows you to retrieve a title, description, content, html and a
list of images.:>>> client.extract('http://vimeo.com/18150336')
<embedly.models.Url at 0x10223d950>previewPreview is no longer available to new users and has been replaced by extract.Corresponds to thePreview endpoint. Passes back a simple object
that allows you to retrieve a title, description, content, html and a list of
images.:>>> client.preview('http://vimeo.com/18150336')
<embedly.models.Url at 0x10223d950>objectifyObjectify is no longer available to new users and has been replaced by extract.Corresponds to theObjectify endpoint. Passes back a simple object
that allows you to retrieve pretty much everything that Embedly knows about a
URL.:>>> client.objectify('http://vimeo.com/18150336')
<embedly.models.Url at 0x10223d950>The above functions all take the same arguements, a URL or a list of URLs and
keyword arguments that correspond to Embedly’squery arguments. Here is an example:>>> client.oembed(['http://vimeo.com/18150336',
  'http://www.youtube.com/watch?v=hD7ydlyhvKs'], maxwidth=500, words=20)There are some supporting functions that allow you to limit URLs before sending
them to Embedly. Embedly can return metadata for any URL, these just allow a
developer to only pass a subset of Embedlyproviders. Note that URL shorteners like bit.ly or t.co are
not supported through these regexes.regexIf you would like to only send URLs that returns embed HTML via Embedly you
can match the URL to the regex before making the call. The matching providers
are listed atembed.ly/providers:>>> url = 'http://vimeo.com/18150336'
>>> client.regex.match(url)
<_sre.SRE_Match at 0x1017ba718>is_supportedThis is a simplified version ofregex:>>> url = 'http://vimeo.com/18150336'
>>> client.is_supported(url)
TrueUrl ObjectTheUrlobject is basically a response dictionary returned from
one of the Embedly API endpoints.>>> response = client.oembed('http://vimeo.com/18150336', words=10)Depending on the method you are using, the response will have different
attributes. We will go through a few, but you should read thedocumentationto get the full list of data that is passed back.>>> response['type']
u'video'
>>> response['title']
u'Wingsuit Basejumping - The Need 4 Speed: The Art of Flight'
>>> response['provider_name']
u'Vimeo'
>>> response['width']
1280As you can see theUrlobject works like a dictionary, but it’s slightly
enhanced. It will always havemethodandoriginal_urlattributes,
which represent the Embedly request type and the URL requested.>>> response.method
'oembed'
>>> response.original_url
'http://vimeo.com/18150336'

# useful because the response data itself may not have a URL
# (or it could have a redirected link, querystring params, etc)
>>> response['url']
...
KeyError: 'url'For the Preview and Objectify endpoints the sub-objects can also be accessed in
the same manner.>>> obj = client.preview('http://vimeo.com/18150336', words=10)
>>> obj['object']['type']
u'video'
>>> obj['images'][0]['url']
u'http://b.vimeocdn.com/ts/117/311/117311910_1280.jpg'Error HandlingIf there was an error processing the request, theUrlobject will contain
an error. For example if we use an invalid key, we will get a 401 response back>>> client = Embedly('notakey')
>>> obj = client.preview('http://vimeo.com/18150336')
>>> obj['error']
True
>>> obj['error_code']
401ChangelogVersion 0.6.0 (May 25, 2022)Declare support for Python 3.6 through 3.10; drop support for Python 2,
3.2, and 3.3.Fix installation with recent versions of setuptools.CopyrightCopyright (c) 2013 Embed.ly, Inc. See LICENSE for details.