6

YoutubeDataAPIを使用して動画の削除を機能させることができません。Pythonクライアントライブラリを使用しています。

これらはすべてドキュメントから直接わかるので、なぜ機能しないのかについて私は本当に混乱しています。これが私の関数です:

def delete_youtube_video_by_id(video_id):
    yt_service = gdata.youtube.service.YouTubeService()
    yt_service.email = YOUTUBE_EMAIL
    yt_service.password = YOUTUBE_SECRET_PASSWORD
    yt_service.source = YOUTUBE_SOURCE
    yt_service.developer_key = YOUTUBE_SECRET_DEVELOPER_KEY
    yt_service.client_id = YOUTUBE_CLIENT_ID
    yt_service.ProgrammaticLogin()
    video_entry = yt_service.GetYouTubeVideoEntry(video_id=video_id)
    response = yt_service.DeleteVideoEntry(video_entry)
    return response

ドキュメントから、ビデオが正常に削除された場合、これはTrueを返すはずです。ただし、Noneを返します。

>>> response = delete_youtube_video_by_id('my_youtube_video_id')
>>> type(response)
<type 'NoneType'>
>>> 

そして、ビデオは削除されません。クレデンシャルは、最初に動画をアップロードするために使用したものと同じクレデンシャルであるため、適切であることがわかります。また、YouTubeのチャンネルから直接取得したため、IDが適切であることがわかります。

何か案は?

4

1 に答える 1

4

これは、一般的な動画フィードではなく、アップロードフィードから動画エントリを取得する必要があるためだと確信しています。それ以外の場合、エントリは編集できません。

これは次のように解釈されます

video_entry = yt_service.GetYouTubeVideoEntry('https://gdata.youtube.com/feeds/api/users/default/uploads/VIDEO_ID')

Python GDataクライアントライブラリは、現在も長い間非推奨となっているData APIのv1を使用しており、クライアントライブラリは一般的に適切に管理されていません。

間違いなく将来の環境であるため、v3とそれに対応する新しいクライアントライブラリに切り替えることをお勧めします。現在利用可能なPythonサンプルがいくつかあります。ビデオを削除するためのサンプルは特にありませんが、次のようになります。

youtube.videos().delete(id=VIDEO_ID).execute()

youtube(そのページの既存の例に従って、適切に承認されたYouTubeクライアントインターフェイスであると想定します)。

于 2013-01-07T17:03:02.103 に答える