@@ -267,7 +267,32 @@ func (v *Video) Update(writer io.Writer) error {
267267 return errGetVideo
268268 }
269269
270- video := videos [0 ]
270+ original := videos [0 ]
271+
272+ // Build a new video with only writable fields to avoid sending
273+ // read-only fields (thumbnails, channelId, etc.) that cause
274+ // invalidVideoMetadata errors.
275+ video := & youtube.Video {
276+ Id : original .Id ,
277+ Snippet : & youtube.VideoSnippet {},
278+ Status : & youtube.VideoStatus {},
279+ }
280+ if original .Snippet != nil {
281+ video .Snippet .Title = original .Snippet .Title
282+ video .Snippet .Description = original .Snippet .Description
283+ video .Snippet .Tags = original .Snippet .Tags
284+ video .Snippet .CategoryId = original .Snippet .CategoryId
285+ video .Snippet .DefaultLanguage = original .Snippet .DefaultLanguage
286+ }
287+ if original .Status != nil {
288+ video .Status .Embeddable = original .Status .Embeddable
289+ video .Status .License = original .Status .License
290+ video .Status .PrivacyStatus = original .Status .PrivacyStatus
291+ video .Status .PublicStatsViewable = original .Status .PublicStatsViewable
292+ video .Status .PublishAt = original .Status .PublishAt
293+ video .Status .SelfDeclaredMadeForKids = original .Status .SelfDeclaredMadeForKids
294+ }
295+
271296 if v .Title != "" {
272297 video .Snippet .Title = v .Title
273298 }
@@ -282,7 +307,6 @@ func (v *Video) Update(writer io.Writer) error {
282307 }
283308 if v .Language != "" {
284309 video .Snippet .DefaultLanguage = v .Language
285- video .Snippet .DefaultAudioLanguage = v .Language
286310 }
287311 if v .License != "" {
288312 video .Status .License = v .License
0 commit comments