Add API.create_media_metadata
authorHarmon <Harmon758@gmail.com>
Sun, 1 Sep 2019 19:31:54 +0000 (14:31 -0500)
committerHarmon <Harmon758@gmail.com>
Sun, 1 Sep 2019 19:31:54 +0000 (14:31 -0500)
Resolves #716
Resolves #1247

docs/api.rst
tweepy/api.py

index c0dec5fd9f2795ad00102ecf936b9cc1891daf6f..cf8a9961a76a1934b81cceb0c0575feeeb3b5df2 100644 (file)
@@ -1083,6 +1083,17 @@ Media methods
                              Up to 100 additional owners may be specified.
 
 
+.. method:: API.create_media_metadata(media_id, alt_text)
+
+   This endpoint can be used to provide additional information about the
+   uploaded media_id. This feature is currently only supported for images and
+   GIFs. Call this endpoint to attach additional metadata such as image alt
+   text.
+   
+   :param media_id: The ID of the media to add alt text to.
+   :param alt_text: The alt text to add to the image.
+
+
 :mod:`tweepy.error` --- Exceptions
 ==================================
 
index 56d66cf3b7e343d593e42f67baa623b24165bb52..dfef2d69d956f8209a01ab36c7417a926a0e333b 100644 (file)
@@ -234,6 +234,26 @@ class API(object):
             upload_api=True
         )(*args, **kwargs)
 
+    def create_media_metadata(self, media_id, alt_text, *args, **kwargs):
+        """ :reference: https://developer.twitter.com/en/docs/media/upload-media/api-reference/post-media-metadata-create
+            :allowed_param:
+        """
+        kwargs.update({
+            'json_payload': {
+                'media_id': media_id,
+                'alt_text': {'text': alt_text}
+            }
+        })
+
+        return bind_api(
+            api=self,
+            path='/media/metadata/create.json',
+            method='POST',
+            allowed_param=[],
+            require_auth=True,
+            upload_api=True
+        )(*args, **kwargs)
+
     def update_with_media(self, filename, *args, **kwargs):
         """ :reference: https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-statuses-update_with_media
             :allowed_param: 'status', 'possibly_sensitive',