YouTube Python API v3를 사용하여 인증 된 oauth2 사용자를 새 채널에 구독합니다.YouTube 파이썬 API v3 HttpError 400 구독 중복
def add_subscription(youtube, channel_id):
add_subscription_response = youtube.subscriptions().insert(
part='id,snippet',
body=dict(
snippet=dict(
resourceId=dict(
channelId=channel_id
)
)
)).execute()
return add_subscription_response["id"], add_subscription_response["snippet"]["title"]
youtube = get_authenticated_service(args)
try:
subscription_id,channel_title = add_subscription(youtube, args.channel_id)
except HttpError, e:
print "An HTTP error %d occurred:\n%s" % (e.resp.status, e.content)
else:
print "A subscription to '%s' was added." % channel_title
https://developers.google.com/youtube/v3/docs/subscriptions/insert 잡아 것을 보인다 (아니면, I가 이해 ...) 사용자가 이미 channel_id
설명 채널에 등록되어있는 경우,이 함수는 subscriptionDuplicate
위한 HttpError
400
= e.resp.status
으로 인상한다.
그러나 사용자가 이미 가입 한 채널을 구독하려고하면 함수는 일반적으로 subscription_id
및 channel_title
을 반환합니다.
HttpError 400
을 올려야하지 않습니까?
실수를하지 않고 함수가 올바르게 작동하는 경우 인증 된 사용자가 이미 channel_id
에 subscriptions().insert()
만을 사용하여 구독하고 있는지 확인하려면 어떻게해야합니까?
사용자가 가입되어 있다면 확인하기 전에 subscriptions().list()
호출 할 수
def is_subscribed(youtube, channel_id):
is_subscription_response = youtube.subscriptions().list(
part='id',
mine='true',
forChannelId=channel_id
).execute()
if len(is_subscription_response["items"]) == 0:
return False
else:
return True
을하지만이 나는 또한 Subscriptions: insert
요청을 시도
@KENDdi 감사합니다. 예, 오늘 구독 내용을 확인하는 기능을 포함하도록 질문을 편집했습니다.하지만 할당량 사용량이 늘어납니다. 어쩌면 이것은'subscriptions()의 API 버그입니다. insert()'... –
나중에 테스트 할 것입니다. 그것에 대한 단서를 찾으면 알려 드리겠습니다. – KENdi
이 문제를 신고 한 사람이 있습니까? "https://code.google.com/p/gdata-issues/issues/detail?id=8935&q=subscriptionDuplicate&colspec=API%20ID%20Type%20Status%20Priority%20Stars%20Summary" 나는 이미이 문제에 투표. – KENdi