WAI
Status Update
Comments
ki...@google.com <ki...@google.com> #2
Thanks for the report!
Unfortunately you can't specify a height or width for video files at the moment, and the 'dv' parameter returns a downsampled version of the video. There is currently no option to retrieve the video in its original resolution.
I have forwarded this to the team and will update here once I hear back.
Unfortunately you can't specify a height or width for video files at the moment, and the 'dv' parameter returns a downsampled version of the video. There is currently no option to retrieve the video in its original resolution.
I have forwarded this to the team and will update here once I hear back.
st...@speakap.nl <st...@speakap.nl> #3
Thanks
The documentation should be updated then?
https://developers.google.com/photos/library/guides/access-media-items#video-base-urls
If specifying a video width or height is not possible the sentense "with your required dimensions:" makes no sense then.
The documentation should be updated then?
If specifying a video width or height is not possible the sentense "with your required dimensions:" makes no sense then.
al...@google.com <al...@google.com> #4
Thanks - Good catch, I'll get the documentation updated. (The previous sentence is quite explicit, but we must have missed this one.)
al...@google.com <al...@google.com> #5
Is there a separate ticket for adding the ability to download full resolution video? Or does this documentation ticket also cover that? I want to make sure I'm tracking the correct ticket so I'll know when that feature is added.
st...@speakap.nl <st...@speakap.nl> #6
Re #5, we can track this here. I have renamed the title of the issue to capture this.
re...@gmail.com <re...@gmail.com> #7
Not sure if this works (or is fool-proof), but I tried reverse-engineering this based on the URLs I see in Google Photos directly, and in Picasa. My hunch is, if you pass the attribute "=m37", you might get a higher resolution video. How I tracked this down is:
1. Go to Picasa's API for showing your albums:https://picasaweb.google.com/data/feed/api/user/YOUR_USER_ID_HERE?kind=album&prettyprint=true . Find the album you are looking for, in the element <gphoto:id>xxxxx</gphoto:id>. Note that this album id is different from your Google Photos album id.
2. Now look at your album via Picasa's API:https://picasaweb.google.com/data/feed/api/user/YOUR_USER_ID/albumid/YOUR_ALBUM_ID?kind=photo&prettyprint=true . Find the video you are looking for (you can search by title etc.).You will see the following defined:
<media:content url='https://lh3.googleusercontent.com/dummy-image-url=m18 ' height='360' width='640' type='video/mpeg4' medium='video'/>
<media:content url='https://lh3.googleusercontent.com/dummy-image-url=m22 ' height='720' width='1280' type='video/mpeg4' medium='video'/>
<media:content url='https://lh3.googleusercontent.com/dummy-image-url=m37 ' height='1080' width='1920' type='video/mpeg4' medium='video'/>
Specifically look for those items where the type='video/mpeg4'.
If you observe the URLs you will see that they have the same URL with a different suffix: =m18 for the smallest resolution, =m22 for the medium resolution, and =m37 for the highest resolution. This is what I see in my albums; you might see something else. What I have found, though, is that if I simply append "=m37" to the URL shown in Google Photos API, it seems to neatly bring me a good resolution video.
Product Team,
Is my hypothesis correct? Or am I completely off-base?
1. Go to Picasa's API for showing your albums:
2. Now look at your album via Picasa's API:
<media:content url='
<media:content url='
<media:content url='
Specifically look for those items where the type='video/mpeg4'.
If you observe the URLs you will see that they have the same URL with a different suffix: =m18 for the smallest resolution, =m22 for the medium resolution, and =m37 for the highest resolution. This is what I see in my albums; you might see something else. What I have found, though, is that if I simply append "=m37" to the URL shown in Google Photos API, it seems to neatly bring me a good resolution video.
Product Team,
Is my hypothesis correct? Or am I completely off-base?
sa...@gmail.com <sa...@gmail.com> #8
One more thing - I got the idea of looking at the Picasa API because in the preview page of Google Photos I saw that the small preview of my video was suffixed with "=m18", and I had seen that while I was working with the Picasa API.
[Deleted User] <[Deleted User]> #9
Re #8 Adding "=m37" works for me in a browser but gives me a 404 when calling the API.
Furthermore, requesting 'https://lh3.googleusercontent.com/[video-baseUrl]=dv ' now results in an Error 400 (did work before for low-res videos) - do I just leave that here, or do I open another issue?
Furthermore, requesting '
[Deleted User] <[Deleted User]> #10
Please do not use any flags that are not documented on the "Access media items" guide in our developer documentation: https://developers.google.com/photos/library/guides/access-media-items
Undocumented flags are not supported and should not be used directly. If you have a use case for other types of encoded or processed video, please do file a new feature request, describing your use and any technical requirements.
Undocumented flags are not supported and should not be used directly. If you have a use case for other types of encoded or processed video, please do file a new feature request, describing your use and any technical requirements.
br...@gmail.com <br...@gmail.com> #11
How is this a feature request, this is clearly a bug. The dv link should download the full resolution just like the documentation states and also its a minimum functionality of getting a media item. Currently there is no way to download the video so the feature is broken. Please update the bug type and priority.
vi...@gmail.com <vi...@gmail.com> #12
Correction (I shouldn't say just resolution but rather full quality of the video):
Based on the description in the documentation the dv parameter should download the full quality video. There is no mention of down sampling the in documentation.
In addition it the basic expectation of getting a media item is to have access to its full quality download.Not having this ability makes the api incomplete missing basic functionality most apps require.
Finally access to full quality video would be consistent with the way images download works (full quality with some tagging stripped).
This is why I think this is a bug, the behavior is unexpected, undocumented, and inconsistent with other interfaces.
Thanks!
Based on the description in the documentation the dv parameter should download the full quality video. There is no mention of down sampling the in documentation.
In addition it the basic expectation of getting a media item is to have access to its full quality download.Not having this ability makes the api incomplete missing basic functionality most apps require.
Finally access to full quality video would be consistent with the way images download works (full quality with some tagging stripped).
This is why I think this is a bug, the behavior is unexpected, undocumented, and inconsistent with other interfaces.
Thanks!
lu...@gmail.com <lu...@gmail.com> #13
Any update on this? There's little point in me using the API if I can't download the original (or thereabouts) video. It can't be that hard to implement.
de...@gmail.com <de...@gmail.com> #14
It's blocked by 109754198 but I don't have permission to view that.
pa...@gmail.com <pa...@gmail.com> #15
We have made some changes recently to the way data is returned from base URLs for videos.
Can you confirm if the quality and resolution is of higher quality now?
If you are still seeing this, could you provide an example of the file or the exact codec, resolution and framerate of the video?
Can you confirm if the quality and resolution is of higher quality now?
If you are still seeing this, could you provide an example of the file or the exact codec, resolution and framerate of the video?
de...@gmail.com <de...@gmail.com> #16
What I'm trying to do is transfer photos and videos from my phone to my computer, where I keep my master copy of 20 years worth of photos. I don't want a higher resolution video, I want the original. For me, having my photos on Google Photos is nice, but it's secondary, TBH.
I tried using the Google Drive integration with Google Photos, but it was a nightmare because deleting a photo from Drive wouldn't necessarily delete it from Photos. Now I'm hoping to use the Google Photos API.
I tried downloading a video from Google Photos today, but the 50MB video from my phone resulted in a 13MB download. Also, the video was taken at a time as per the filename on my phone: 20181124_140007.mp4 but the EXIF data in the downloaded video had been rewritten by Google Photos and the only timestamp in there was 2018:11:24 16:48:07, which was probably the time that my phone uploaded the video. So now I have a poorer quality copy of my original video with the wrong timestamp.
And it's just this second dawned on me that I've deleted files from my phone to free up space, so the only original copy of those files is on Google Photos and I can't get access to them.
I'm just trying to keep a few files in sync between different devices. It shouldn't be this difficult.
I tried using the Google Drive integration with Google Photos, but it was a nightmare because deleting a photo from Drive wouldn't necessarily delete it from Photos. Now I'm hoping to use the Google Photos API.
I tried downloading a video from Google Photos today, but the 50MB video from my phone resulted in a 13MB download. Also, the video was taken at a time as per the filename on my phone: 20181124_140007.mp4 but the EXIF data in the downloaded video had been rewritten by Google Photos and the only timestamp in there was 2018:11:24 16:48:07, which was probably the time that my phone uploaded the video. So now I have a poorer quality copy of my original video with the wrong timestamp.
And it's just this second dawned on me that I've deleted files from my phone to free up space, so the only original copy of those files is on Google Photos and I can't get access to them.
I'm just trying to keep a few files in sync between different devices. It shouldn't be this difficult.
er...@gmail.com <er...@gmail.com> #17
what about this issue any news how to download the original file size, i have a video 2GB and when i download it it downloaded as 320MB and not working..
Any solution about this issue ???
Any solution about this issue ???
p....@leshabitues.fr <p....@leshabitues.fr> #18
Hello
Any news about this issue. ?
Any news about this issue. ?
pv...@swooby.com <pv...@swooby.com> #19
Hi,
someone work on it?
someone work on it?
le...@gmail.com <le...@gmail.com> #20
In answer to https://issuetracker.google.com/issues/80149160#comment15
I have recently discovered that my 1080p 60fps videos are now transcoded down to 30fps with high compression - they look terrible. But if I directly download them from the Google Photos Web they are fine. Why is the API transcoding, please?
Here is an example which I share globally for all to see.
Album =https://photos.app.goo.gl/Avm52meJycEH8N5o6 contains a single video showing the issue.
The attachment contains three copies of the video:
- the original file from the phone directly (1080p 60fps)
- the file as downloaded from the Google Photos Web (similar but not identical to the above)
- the file as downloaded from baseUrl with =dv -- this shows only 30 fps and file size is 1/10 of the above
I have recently discovered that my 1080p 60fps videos are now transcoded down to 30fps with high compression - they look terrible. But if I directly download them from the Google Photos Web they are fine. Why is the API transcoding, please?
Here is an example which I share globally for all to see.
Album =
The attachment contains three copies of the video:
- the original file from the phone directly (1080p 60fps)
- the file as downloaded from the Google Photos Web (similar but not identical to the above)
- the file as downloaded from baseUrl with =dv -- this shows only 30 fps and file size is 1/10 of the above
he...@gmail.com <he...@gmail.com> #21
Hey Google. Any news here? Not sure why this was ever switched to a feature request type of ticket, as this is 100% a bug.
This is getting really ridiculous. This API has been the only means of interacting with Google Photos since you all did away with the Google Drive folder a couple months ago and yet we still can't get any traction on this issue that's been open for OVER A YEAR???? What kind of terrible management is going on over there that the person assigned to this hasn't been canned already for not completing their work?
For the love of all things holy Google... PLEASE FIX THIS DUMPSTER FIRE OF AN API!!!!
This is getting really ridiculous. This API has been the only means of interacting with Google Photos since you all did away with the Google Drive folder a couple months ago and yet we still can't get any traction on this issue that's been open for OVER A YEAR???? What kind of terrible management is going on over there that the person assigned to this hasn't been canned already for not completing their work?
For the love of all things holy Google... PLEASE FIX THIS DUMPSTER FIRE OF AN API!!!!
na...@gmail.com <na...@gmail.com> #22
I think step back on this or similiar issue when fetching video with =dv suffix
I'm using
com.google.photos.library:google-photos-library-client:1.4.0
to fetch videos. It was working pretty well but for some new videos i got issue IOException with reason 500 from google endpoints:
It describe itself more like this:
java.io.IOException: Server returned HTTP response code: 500 for URL:https://video-downloads.googleusercontent.com/ABzBgw2CdMg09PwSry__Bl [...]
this is (partial) output from fields of MediaItem
google.photos.types.MediaItem.base_url=https://lh3.googleusercontent.com/lr/AGWb-e6s [...]
google.photos.types.MediaItem.mime_type=video/mp4, google.photos.types.MediaItem.media_metadata=creation_time {
seconds: 1570301787
}
width: 576
height: 1024
video {
fps: 29.918403416437823
status: READY
}
, google.photos.types.MediaItem.filename=video-c523eb1bb7a18b3e31f97ac581bffabf-V.mp4}
all i do is append =dv to the end of baseUrl
I'm using
com.google.photos.library:google-photos-library-client:1.4.0
to fetch videos. It was working pretty well but for some new videos i got issue IOException with reason 500 from google endpoints:
It describe itself more like this:
java.io.IOException: Server returned HTTP response code: 500 for URL:
this is (partial) output from fields of MediaItem
google.photos.types.MediaItem.base_url=
google.photos.types.MediaItem.mime_type=video/mp4, google.photos.types.MediaItem.media_metadata=creation_time {
seconds: 1570301787
}
width: 576
height: 1024
video {
fps: 29.918403416437823
status: READY
}
, google.photos.types.MediaItem.filename=video-c523eb1bb7a18b3e31f97ac581bffabf-V.mp4}
all i do is append =dv to the end of baseUrl
[Deleted User] <[Deleted User]> #23
sorry for the above. I meant to paste it in related issue that point to this one. But there is also mention about 400 return from the endpoint not 500
mean:https://issuetracker.google.com/issues/111638708
I cannot remove above comment...
mean:
I cannot remove above comment...
te...@gmail.com <te...@gmail.com> #24
Is there any plan to fix this bug?
ts...@gmail.com <ts...@gmail.com> #25
Hi there also wishing that issue was prioritized :p
st...@speakap.nl <st...@speakap.nl> #26
It's been nearly 3 years. Why has this not been fixed yet?
te...@gmail.com <te...@gmail.com> #27
Bumping this...
Description
Version used: 27.0.0 (also on 26.0.2)
Devices/Android versions reproduced on: Samsung Galaxy S5 4.4.2 (no info whether it's rooted)
compileSdkVersion 27
targetSdkVersion 25
buildToolsVersion '26.0.2' (seems to be the latest:
android plugin 2.3.3 (not updated)
gradle 3.3 (not updated)
Android Studio 3.0
Related issue:
This has been happening since I updated the Support Library to 26.0.2. Now it's also happening on 27.0.0, even though I expected such issues to have been resolved in it. I see a single crash in Crashlytics shortly after submitting the app to Google Play (I'm rolling out to a small percentage of my users). I don't know what the exact steps to reproduce are. So far I've assumed it's probably when the app is started.
I am not using ViewStructure anywhere in my project.
Fatal Exception: java.lang.NoClassDefFoundError: android/view/ViewStructure
at java.lang.Class.getDeclaredMethods(Class.java)
at java.lang.Class.getDeclaredMethods(Class.java:656)
at android.view.ViewDebug.getExportedPropertyMethods(ViewDebug.java:960)
at android.view.ViewDebug.exportMethods(ViewDebug.java:1047)
at android.view.ViewDebug.dumpViewProperties(ViewDebug.java:997)
at android.view.ViewDebug.dumpViewProperties(ViewDebug.java:983)
at android.view.ViewDebug.dumpView(ViewDebug.java:900)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:855)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dump(ViewDebug.java:793)
at android.view.ViewDebug.dispatchCommand(ViewDebug.java:416)
at android.view.ViewRootImpl$W.executeCommand(ViewRootImpl.java:6258)
at android.view.IWindow$Stub.onTransact(IWindow.java:65)
at android.os.Binder.execTransact(Binder.java:404)
at dalvik.system.NativeStart.run(NativeStart.java)
Caused by java.lang.ClassNotFoundException: Didn't find class "android.view.ViewStructure" on path: DexPathList[[zip file "/data/app/package.name-1.apk"],nativeLibraryDirectories=[/data/app-lib/package.name-1, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
at java.lang.Class.getDeclaredMethods(Class.java)
at java.lang.Class.getDeclaredMethods(Class.java:656)
at android.view.ViewDebug.getExportedPropertyMethods(ViewDebug.java:960)
at android.view.ViewDebug.exportMethods(ViewDebug.java:1047)
at android.view.ViewDebug.dumpViewProperties(ViewDebug.java:997)
at android.view.ViewDebug.dumpViewProperties(ViewDebug.java:983)
at android.view.ViewDebug.dumpView(ViewDebug.java:900)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:855)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dump(ViewDebug.java:793)
at android.view.ViewDebug.dispatchCommand(ViewDebug.java:416)
at android.view.ViewRootImpl$W.executeCommand(ViewRootImpl.java:6258)
at android.view.IWindow$Stub.onTransact(IWindow.java:65)
at android.os.Binder.execTransact(Binder.java:404)
at dalvik.system.NativeStart.run(NativeStart.java)