Thanks for your quickly response, Jeffrey.
I modified my code, using a feed only with the video(s) that I want to update.
I used the Wireshark to capture this request.
This is my batch request:
<?xml version='1.0' encoding='utf-8'?><feed xmlns='http://www.w3.org/2005/Atom'xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/'xmlns:gml='http://www.opengis.net/gml'xmlns:georss='http://www.georss.org/georss'xmlns:media='http://search.yahoo.com/mrss/'xmlns:batch='http://schemas.google.com/gdata/batch'xmlns:yt='http://gdata.youtube.com/schemas/2007'xmlns:gd='http://schemas.google.com/g/2005'> <category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#video' /> <batch:id>1</batch:id> <batch:operation type='update' /> <entry xmlns='http://www.w3.org/2005/Atom' gd:etag='W/"CUAEQH47eCp7I2A9WhVRKUg."'> <id>tag:youtube.com,2008:video:${VIDEO_YOUTUBE_ID}</id> <published>2012-03-13T15:46:30.000Z</published> <updated>2012-03-19T10:41:41.000Z</updated> <app:edited xmlns:app='http://www.w3.org/2007/app'>2012-03-19T10:41:41.000Z</app:edited> <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' term='Tech' label='Science & Technology' /> <category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#video' /> <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='Test' /> <title>Test</title> <content type='application/x-shockwave-flash' src='http://www.youtube.com/v/${VIDEO_YOUTUBE_ID}?version=3&f=user_uploads&c=${APPLICATION_ID}&d=AbDTfru6jc5fN0isrPPDKJsO88HsQjpE1a8d1GxQnGDm&app=youtube_gdata' /> <link rel='alternate' type='text/html' href='http://www.youtube.com/watch?v=${VIDEO_YOUTUBE_ID}&feature=youtube_gdata' /> <link rel='http://gdata.youtube.com/schemas/2007#video.responses' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/${VIDEO_YOUTUBE_ID}/responses?client=${APPLICATION_ID}' /> <link rel='http://gdata.youtube.com/schemas/2007#video.ratings' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/${VIDEO_YOUTUBE_ID}/ratings?client=${APPLICATION_ID}' /> <link rel='http://gdata.youtube.com/schemas/2007#video.complaints' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/${VIDEO_YOUTUBE_ID}/complaints?client=${APPLICATION_ID}' /> <link rel='http://gdata.youtube.com/schemas/2007#video.related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/${VIDEO_YOUTUBE_ID}/related?client=${APPLICATION_ID}' /> <link rel='http://gdata.youtube.com/schemas/2007#video.captionTracks' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/${VIDEO_YOUTUBE_ID}/captions?client=${APPLICATION_ID}' /> <link rel='http://gdata.youtube.com/schemas/2007#mobile' type='text/html' href='http://m.youtube.com/details?v=${VIDEO_YOUTUBE_ID}' /> <link rel='http://gdata.youtube.com/schemas/2007#insight.views' type='text/html' href='http://insight.youtube.com/video-analytics/csvreports?query=${VIDEO_YOUTUBE_ID}&type=v&starttime=1235865600000&endtime=1332201600000&user_starttime=1331596800000&user_endtime=1332201600000&region=world&token=QdTKXPBmOSah1ENloDBgT9sWEEt8MTMzMjMxODM2M0AxMzMyMzE2NTYz&hl=en_US' /> <link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/${USERNAME}/uploads/${VIDEO_YOUTUBE_ID}?client=${APPLICATION_ID}' /> <link rel='edit' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/${USERNAME}/uploads/${VIDEO_YOUTUBE_ID}?client=${APPLICATION_ID}' /> <author> <name>${USERNAME}</name> <uri>http://gdata.youtube.com/feeds/api/users/${USERNAME}</uri> </author> <gd:comments> <gd:feedLink rel='http://gdata.youtube.com/schemas/2007#comments' href='http://gdata.youtube.com/feeds/api/videos/${VIDEO_YOUTUBE_ID}/comments?client=${APPLICATION_ID}' countHint='0' /> </gd:comments> <georss:where> <gml:Point> <gml:pos>40.0 -4.0</gml:pos> </gml:Point> </georss:where> <media:group> <media:description type='plain'>Test</media:description> <media:keywords>Test</media:keywords> <media:player url='http://www.youtube.com/watch?v=${VIDEO_YOUTUBE_ID}&feature=youtube_gdata_player' /> <yt:duration seconds='17' /> <yt:uploaded>2012-03-13T15:46:30.000Z</yt:uploaded> <yt:videoid>${VIDEO_YOUTUBE_ID}</yt:videoid> <media:title type='plain'>Modified Title</media:title> <media:category label='Science & Technology' scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>Tech</media:category> <media:category scheme='http://gdata.youtube.com/schemas/2007/developertags.cat'>1749264241</media:category> <media:content url='http://www.youtube.com/v/${VIDEO_YOUTUBE_ID}?version=3&f=user_uploads&c=${APPLICATION_ID}&d=AbDTfru6jc5fN0isrPPDKJsO88HsQjpE1a8d1GxQnGDm&app=youtube_gdata' type='application/x-shockwave-flash' medium='video' isDefault='true' expression='full' duration='17' yt:format='5' /> <media:content url='rtsp://v5.cache3.c.youtube.com/${RTSP_ID}/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='17' yt:format='1' /> <media:content url='rtsp://v2.cache1.c.youtube.com/${RTSP_ID}/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='17' yt:format='6' /> <media:credit role='uploader' scheme='urn:youtube'>${USERNAME}</media:credit> <media:thumbnail url='http://i.ytimg.com/vi/${VIDEO_YOUTUBE_ID}/default.jpg' height='90' width='120' time='00:00:08.500' /> <media:thumbnail url='http://i.ytimg.com/vi/${VIDEO_YOUTUBE_ID}/hqdefault.jpg' height='360' width='480' /> <media:thumbnail url='http://i.ytimg.com/vi/${VIDEO_YOUTUBE_ID}/1.jpg' height='90' width='120' time='00:00:04.250' /> <media:thumbnail url='http://i.ytimg.com/vi/${VIDEO_YOUTUBE_ID}/2.jpg' height='90' width='120' time='00:00:08.500' /> <media:thumbnail url='http://i.ytimg.com/vi/${VIDEO_YOUTUBE_ID}/3.jpg' height='90' width='120' time='00:00:12.750' /> <media:license href='http://www.youtube.com/t/terms' type='text/html'>youtube</media:license> </media:group> <yt:statistics viewCount='21' /> <yt:accessControl permission='allowed' action='comment' /> <yt:accessControl permission='allowed' action='commentVote' /> <yt:accessControl permission='moderated' action='videoRespond' /> <yt:accessControl permission='allowed' action='rate' /> <yt:accessControl permission='allowed' action='embed' /> <yt:accessControl permission='allowed' action='list' /> <yt:accessControl permission='allowed' action='autoPlay' /> <yt:accessControl permission='allowed' action='syndicate' /> </entry></feed>
And this is the response:
<?xml version='1.0' encoding='utf-8'?><feed xmlns='http://www.w3.org/2005/Atom'> <id>http://gdata.youtube.com/feeds/api/users/${USERNAME}/uploads/batch/1332316564245</id> <updated>2012-03-21T07:56:04.554Z</updated> <category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#video' /> <title>Batch Feed</title> <entry xmlns:batch='http://schemas.google.com/gdata/batch'> <id>http://gdata.youtube.com/feeds/api/users/${USERNAME}/uploads/batch/1332316564245/fatal</id> <updated>2012-03-21T07:56:04.554Z</updated> <title>Fatal Error</title> <content>Feed processing was interrupted.</content> <batch:interrupted error='0' parsed='0' reason='Guice provision errors: 1) Error in custom provider, com.google.youtube.frontend.gdata.common.WrappedServiceException: com.google.gdata.provider.InvalidRequestUriException: Missing required parameter:username at com.google.youtube.frontend.gdata.inject.ParameterBindingBuilder.in(ParameterBindingBuilder.java:63) at com.google.youtube.frontend.gdata.inject.ParameterBindingBuilder.in(ParameterBindingBuilder.java:63) while locating com.google.youtube.backend.rosy.proto.UserRefData$UserRef annotated with @com.google.youtube.frontend.gdata.inject.ParameterValue(value=username) for parameter 3 at com.google.youtube.frontend.gdata.feeds.UserVideoBatchGetAction.<init>(UserVideoGetAction.java:118) while locating com.google.youtube.frontend.gdata.feeds.UserVideoBatchGetAction while locating com.google.youtube.frontend.gdata.common.action.GetAction<com.google.gdata.model.youtube.VideoEntry> annotated with interface com.google.youtube.frontend.gdata.feeds.BatchVideoGetActionAnnotation Caused by: com.google.youtube.frontend.gdata.common.WrappedServiceException: com.google.gdata.provider.InvalidRequestUriException: Missing required parameter:username at com.google.youtube.frontend.gdata.inject.SimpleParameter.get(SimpleParameter.java:73) at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86) at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:55) at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:66) at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:47) at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1044) at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) at com.google.youtube.frontend.gdata.feeds.plugin.FeedScopes$RequestScope$1.get(FeedScopes.java:84) at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41) at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38) at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62) at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:108) at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:88) at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:259) at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56) at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:991) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1037) at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:987) at com.google.youtube.frontend.gdata.feeds.UserUploadFeedProvider$1.create(UserUploadFeedProvider.java:230) at com.google.youtube.frontend.gdata.common.action.ActionBatchProcessorFactory.createBatchProcessor(ActionBatchProcessorFactory.java:51) at com.google.gdata.provider.FeedProviderVarz$VarzBatchProcessorFactoryWrapper.createBatchProcessor(FeedProviderVarz.java:617) at com.google.gdata.servlet.batch.BatchRequestHandler.createBatchProcessor(BatchRequestHandler.java:387) at com.google.gdata.servlet.batch.NewModelBatchRequestHandler$BatchFeedHandler.getChildHandler(NewModelBatchRequestHandler.java:131) at com.google.gdata.wireformats.XmlParser.getHandler(XmlParser.java:209) at com.google.gdata.wireformats.XmlParser.startElement(XmlParser.java:175) at org.xml.sax.helpers.ParserAdapter.startElement(ParserAdapter.java:621) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:456) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2732) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:625) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:821) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:750) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:525) at org.xml.sax.helpers.ParserAdapter.parse(ParserAdapter.java:429) at com.google.gdata.wireformats.SaxEventSource.parse(SaxEventSource.java:68) at com.google.gdata.wireformats.XmlParser.parse(XmlParser.java:110) at com.google.gdata.servlet.batch.NewModelBatchRequestHandler$BatchParser.parseFeed(NewModelBatchRequestHandler.java:102) at com.google.gdata.servlet.batch.NewModelBatchRequestHandler.parse(NewModelBatchRequestHandler.java:76) at com.google.gdata.servlet.batch.BatchRequestHandler.execute(BatchRequestHandler.java:178) at com.google.gdata.servlet.GDataServlet.doBatch(GDataServlet.java:1323) at com.google.gdata.servlet.GDataServlet.doPost(GDataServlet.java:1042) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at com.google.gdata.servlet.GDataServlet.service(GDataServlet.java:1913) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at com.google.gse.FilteredServlet$ChainEnd.doFilter(FilteredServlet.java:201) at com.google.gdata.servlet.XdServletFilter.doFilter(XdServletFilter.java:74) at com.google.gse.FilteredServlet$Chain.doFilter(FilteredServlet.java:178) at com.google.gdata.servlet.ErrorFilter.doFilter(ErrorFilter.java:42) at com.google.gse.FilteredServlet$Chain.doFilter(FilteredServlet.java:178) at com.google.gse.FilteredServlet.service(FilteredServlet.java:147) at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:278) at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:268) at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:180) at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:84) at com.google.youtube.frontend.gdata.feeds.servlets.DisableJsoncPartialFilter.doFilter(DisableJsoncPartialFilter.java:66) at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:164) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:81) at com.google.api.server.cors.CorsFilter.doFilter(CorsFilter.java:99) at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:164) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:81) at com.google.youtube.frontend.gdata.feeds.CallerLocationFilter.doFilter(CallerLocationFilter.java:115) at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:164) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:81) at com.google.youtube.frontend.gdata.feeds.servlets.BlackListFilter.doFilter(BlackListFilter.java:77) at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:164) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:81) at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:126) at com.google.gse.FilteredServlet$Chain.doFilter(FilteredServlet.java:178) at com.google.gse.FilteredServlet.service(FilteredServlet.java:147) at com.google.gse.internal.HttpConnectionImpl.runServletFromWithinSpan(HttpConnectionImpl.java:812) at com.google.gse.internal.HttpConnectionImpl.access$000(HttpConnectionImpl.java:61) at com.google.gse.internal.HttpConnectionImpl$1.runServletFromWithinSpan(HttpConnectionImpl.java:710) at com.google.gse.GSETraceHelper$TraceableServletRunnable$2.run(GSETraceHelper.java:473) at com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:56) at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:634) at com.google.gse.GSETraceHelper$TraceableServletRunnable.continueGfeTrace(GSETraceHelper.java:422) at com.google.gse.GSETraceHelper$TraceableServletRunnable.runWithTracingEnabled(GSETraceHelper.java:370) at com.google.gse.GSETraceHelper$TraceableServletRunnable.run(GSETraceHelper.java:345) at com.google.gse.internal.HttpConnectionImpl.runServlet(HttpConnectionImpl.java:706) at com.google.gse.internal.HttpConnectionImpl.run(HttpConnectionImpl.java:666) at com.google.gse.internal.DispatchQueueImpl$WorkerThread.run(DispatchQueueImpl.java:374) Caused by: com.google.gdata.provider.InvalidRequestUriException: Missing required parameter:username ... 88 more 2) Error in custom provider, com.google.youtube.frontend.gdata.common.WrappedServiceException: com.google.gdata.provider.InvalidRequestUriException: Missing required parameter:video-id at com.google.youtube.frontend.gdata.inject.ParameterBindingBuilder.in(ParameterBindingBuilder.java:63) at com.google.youtube.frontend.gdata.inject.ParameterBindingBuilder.in(ParameterBindingBuilder.java:63) while locating com.google.youtube.model.VideoId annotated with @com.google.youtube.frontend.gdata.inject.ParameterValue(value=video-id) for parameter 4 at com.google.youtube.frontend.gdata.feeds.UserVideoBatchGetAction.<init>(UserVideoGetAction.java:118) while locating com.google.youtube.frontend.gdata.feeds.UserVideoBatchGetAction while locating com.google.youtube.frontend.gdata.common.action.GetAction<com.google.gdata.model.youtube.VideoEntry> annotated with interface com.google.youtube.frontend.gdata.feeds.BatchVideoGetActionAnnotation Caused by: com.google.youtube.frontend.gdata.common.WrappedServiceException: com.google.gdata.provider.InvalidRequestUriException: Missing required parameter:video-id at com.google.youtube.frontend.gdata.inject.SimpleParameter.get(SimpleParameter.java:73) at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86) at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:55) at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:66) at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:47) at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1044) at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) at com.google.youtube.frontend.gdata.feeds.plugin.FeedScopes$RequestScope$1.get(FeedScopes.java:84) at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41) at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38) at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62) at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:108) at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:88) at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:259) at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56) at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:991) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1037) at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:987) at com.google.youtube.frontend.gdata.feeds.UserUploadFeedProvider$1.create(UserUploadFeedProvider.java:230) at com.google.youtube.frontend.gdata.common.action.ActionBatchProcessorFactory.createBatchProcessor(ActionBatchProcessorFactory.java:51) at com.google.gdata.provider.FeedProviderVarz$VarzBatchProcessorFactoryWrapper.createBatchProcessor(FeedProviderVarz.java:617) at com.google.gdata.servlet.batch.BatchRequestHandler.createBatchProcessor(BatchRequestHandler.java:387) at com.google.gdata.servlet.batch.NewModelBatchRequestHandler$BatchFeedHandler.getChildHandler(NewModelBatchRequestHandler.java:131) at com.google.gdata.wireformats.XmlParser.getHandler(XmlParser.java:209) at com.google.gdata.wireformats.XmlParser.startElement(XmlParser.java:175) at org.xml.sax.helpers.ParserAdapter.startElement(ParserAdapter.java:621) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:456) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2732) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:625) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:821) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:750) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:525) at org.xml.sax.helpers.ParserAdapter.parse(ParserAdapter.java:429) at com.google.gdata.wireformats.SaxEventSource.parse(SaxEventSource.java:68) at com.google.gdata.wireformats.XmlParser.parse(XmlParser.java:110) at com.google.gdata.servlet.batch.NewModelBatchRequestHandler$BatchParser.parseFeed(NewModelBatchRequestHandler.java:102) at com.google.gdata.servlet.batch.NewModelBatchRequestHandler.parse(NewModelBatchRequestHandler.java:76) at com.google.gdata.servlet.batch.BatchRequestHandler.execute(BatchRequestHandler.java:178) at com.google.gdata.servlet.GDataServlet.doBatch(GDataServlet.java:1323) at com.google.gdata.servlet.GDataServlet.doPost(GDataServlet.java:1042) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at com.google.gdata.servlet.GDataServlet.service(GDataServlet.java:1913) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at com.google.gse.FilteredServlet$ChainEnd.doFilter(FilteredServlet.java:201) at com.google.gdata.servlet.XdServletFilter.doFilter(XdServletFilter.java:74) at com.google.gse.FilteredServlet$Chain.doFilter(FilteredServlet.java:178) at com.google.gdata.servlet.ErrorFilter.doFilter(ErrorFilter.java:42) at com.google.gse.FilteredServlet$Chain.doFilter(FilteredServlet.java:178) at com.google.gse.FilteredServlet.service(FilteredServlet.java:147) at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:278) at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:268) at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:180) at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:84) at com.google.youtube.frontend.gdata.feeds.servlets.DisableJsoncPartialFilter.doFilter(DisableJsoncPartialFilter.java:66) at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:164) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:81) at com.google.api.server.cors.CorsFilter.doFilter(CorsFilter.java:99) at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:164) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:81) at com.google.youtube.frontend.gdata.feeds.CallerLocationFilter.doFilter(CallerLocationFilter.java:115) at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:164) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:81) at com.google.youtube.frontend.gdata.feeds.servlets.BlackListFilter.doFilter(BlackListFilter.java:77) at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:164) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:81) at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:126) at com.google.gse.FilteredServlet$Chain.doFilter(FilteredServlet.java:178) at com.google.gse.FilteredServlet.service(FilteredServlet.java:147) at com.google.gse.internal.HttpConnectionImpl.runServletFromWithinSpan(HttpConnectionImpl.java:812) at com.google.gse.internal.HttpConnectionImpl.access$000(HttpConnectionImpl.java:61) at com.google.gse.internal.HttpConnectionImpl$1.runServletFromWithinSpan(HttpConnectionImpl.java:710) at com.google.gse.GSETraceHelper$TraceableServletRunnable$2.run(GSETraceHelper.java:473) at com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:56) at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:634) at com.google.gse.GSETraceHelper$TraceableServletRunnable.continueGfeTrace(GSETraceHelper.java:422) at com.google.gse.GSETraceHelper$TraceableServletRunnable.runWithTracingEnabled(GSETraceHelper.java:370) at com.google.gse.GSETraceHelper$TraceableServletRunnable.run(GSETraceHelper.java:345) at com.google.gse.internal.HttpConnectionImpl.runServlet(HttpConnectionImpl.java:706) at com.google.gse.internal.HttpConnectionImpl.run(HttpConnectionImpl.java:666) at com.google.gse.internal.DispatchQueueImpl$WorkerThread.run(DispatchQueueImpl.java:374) Caused by: com.google.gdata.provider.InvalidRequestUriException: Missing required parameter:video-id ... 88 more 2 errors' success='0' unprocessed='0' /> </entry></feed>
In the code, I replaced my private data with variables:
${USERNAME}, my youtube user logged
${VIDEO_YOUTUBE_ID}, my youtube video id that i want to update
${APPLICATION_ID}, my google application id
${RTSP_ID}, the RTSP identifier
I checked the code, with the guide youtube api developer, and I dont understand why fail it.
Can you see any things about this?
Thanks for your help.
Regards,
Manuel Gaviño
El lunes 19 de marzo de 2012 20:50:52 UTC+1, Jeffrey Posnick escribió:
Hello Manuel,
Are you sure that this code actually used to work? Because I just ran
it myself and used Wireshark to capture the HTTP batch request being
sent, and what it's doing is sending the entire contents of your
uploads feed as part of the batch update, even though you're only
intending to update a single video. You should only add the video(s)
that you want to update to to the batch request.
Cheers,
-Jeff Posnick, YouTube API Team
groups.google.com/group/youtube-api-gdata | apiblog.youtube.com |
@YouTubeDev
On Mar 15, 11:14 am, Manuel Gaviño <manueljesusgav...@gmail.com>
wrote:
> Hello,
>
> Around 3 week, we have a problem with our youtube batch process. We use
> this batch process to massive update our metadata´s videos.
>
> We use the java api gdata-1.46. If we use the individual video update, we
> checked that it work fine.
>
> This is the thrown exception:
>
> Error in custom provider,
> com.google.youtube.frontend.gdata.common. WrappedServiceException:
> com.google.gdata.provider.InvalidRequestUriException: Missing required
> parameter:username
> at
> com.google.youtube.frontend.gdata.inject. (ParameterBindingBuilder.in Paramet erBindingBuilder.java:63)
> at
> com.google.youtube.frontend.gdata.inject. (ParameterBindingBuilder.in Paramet erBindingBuilder.java:63)
> while locating com.google.youtube.backend.rosy.proto.UserRefData$UserRef
> annotated with
> @com.google.youtube.frontend.gdata.inject.ParameterValue( value=username)
> for parameter 3 at
> com.google.youtube.frontend.gdata.feeds. UserVideoBatchGetAction.<init> (User VideoGetAction.java:118)
> while locating
> com.google.youtube.frontend.gdata.feeds. UserVideoBatchGetAction
> while locating
> com.google.youtube.frontend.gdata.common.action.GetAction< com.google.gdata. model.youtube.VideoEntry>
> annotated with interface
> com.google.youtube.frontend.gdata.feeds. BatchVideoGetActionAnnotation
>
> Error in custom provider,
> com.google.youtube.frontend.gdata.common. WrappedServiceException:
> com.google.gdata.provider.InvalidRequestUriException: Missing required
> parameter:video-id
> at
> com.google.youtube.frontend.gdata.inject. (ParameterBindingBuilder.in Paramet erBindingBuilder.java:63)
> at
> com.google.youtube.frontend.gdata.inject. (ParameterBindingBuilder.in Paramet erBindingBuilder.java:63)
> while locating com.google.youtube.model.VideoId annotated with
> @com.google.youtube.frontend.gdata.inject.ParameterValue( value=video-id)
> for parameter 4 at
> com.google.youtube.frontend.gdata.feeds. UserVideoBatchGetAction.<init> (User VideoGetAction.java:118)
> while locating
> com.google.youtube.frontend.gdata.feeds. UserVideoBatchGetAction
> while locating
> com.google.youtube.frontend.gdata.common.action.GetAction< com.google.gdata. model.youtube.VideoEntry>
> annotated with interface
> com.google.youtube.frontend.gdata.feeds. BatchVideoGetActionAnnotation
>
> This is me JUnit code:
>
> YouTubeService service = new YouTubeService(applicationId, developerKey);
> service.setUserCredentials(username, password);
>
> VideoEntry videoEntry = service.getEntry(new
> URL("http://gdata.youtube.com/feeds/api/users/default/ " + videoId),uploads/
> VideoEntry.class);
>
> YouTubeMediaGroup mediaGroup = videoEntry.getOrCreateMediaGroup();
> mediaGroup.setTitle(new MediaTitle());
> mediaGroup.getTitle().setPlainTextContent("Title Test");
>
> VideoFeed feed = service.getFeed(new
> URL("http://gdata.youtube.com/feeds/api/users/default/ "),uploads
> VideoFeed.class);
>
> BatchUtils.setBatchId(videoEntry, "A");
> BatchUtils.setBatchOperationType( videoEntry, BatchOperationType.UPDATE);
> feed.getEntries().add(videoEntry);
>
> VideoFeed batchResponse = service.batch(new
> URL(feed.getFeedBatchLink().getHref()), feed);
>
> Any idea?
>
> Thanks for any solutions
>
> Regards
You received this message because you are subscribed to the Google Groups "YouTube APIs Developer Forum" group.
To view this discussion on the web visit https://groups.google.com/d/msg/youtube-api-gdata/-/8Ouq6Ebotb8J.
To post to this group, send email to youtube-api-gdata@googlegroups.com.
To unsubscribe from this group, send email to youtube-api-gdata+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/youtube-api-gdata?hl=en.
No comments:
Post a Comment