[Python] Tweepy로 트위터에 동영상 올리기

안녕하세요? 블로그 글을 올릴 시간이 없네요.

 

아래는 트위터 API와 Tweepy를 이용해서 트위터에 동영상을 올리는 코드입니다.

API 키 등은 직접 수정하시면 됩니다. 

 

트위터를 트위터라 불러야 할지 X라 불러야 할지 고민이 되네요.

 

import tweepy

api_key = "API Key"
api_secrets = "API Secret"
access_token = "Access Token"
access_secret = "Acess Secret"

auth = tweepy.OAuth1UserHandler(
    consumer_key=api_key,
    consumer_secret=api_secrets,
    access_token=access_token,
    access_token_secret=access_secret)
api = tweepy.API(auth)

client = tweepy.Client(
    consumer_key=api_key,
    consumer_secret=api_secrets,
    access_token=access_token,
    access_token_secret=access_secret)
    
 
media_ids = []

media = api.media_upload('비디오 파일 경로',chunked=True,media_category="tweet_video")
media_ids.append(media.media_id)

client.create_tweet(text='게시물 내용(텍스트)', media_ids=media_ids)

 

만약 400 에러가 뜬다면 동영상 파일을 확인해보세요 (H.264 코덱만 지원하는 것으로 보입니다.)

글자 수 제한은 140자 인 것 같네요.

 

https://developer.twitter.com/en/docs/twitter-api/v1/media/upload-media/uploading-media/media-best-practices

 

Media Best Practices

Did someone say … cookies? Twitter and its partners use cookies to provide you with a better, safer and faster service and to support our business. Some cookies are necessary to use our services, improve our services, and make sure they work properly. Sh

developer.twitter.com

 

만약 동영상 없이 텍스트만 올리시려면 아래 코드를 이용하시면 되겠습니다.

client.create_tweet(text="할말")

 

 

참고

위에서 언급했듯 동영상 형식이 안 맞아서 오류가 나는 경우가 많습니다. 저 같은 경우에는 ffmpeg로 코덱을 바꾸어서 업로드를 하고 있어요. 아래 참조하세요.

 

저는 ffmpeg를 파이썬에서 사용하려고 아래와 같이 커맨드를 불러와서 사용했습니다. file_path는 인풋 파일, output은 아웃풋  파일입니다. 

os.system(f"ffmpeg -i {file_path} -c:v libx264 -preset slow -crf 20 -vf format=yuv420p -movflags +faststart {output}")

댓글

Designed by JB FACTORY