Closed jaylinski closed 3 years ago
Have you cracked the pinning on the android app @jaylinski ?
@yoshimo Only for an older app-version: https://github.com/jaylinski/kodi-addon-vimeo/blob/master/docs/android-app-inspection.md
I'm currently struggling to get the latest version working on Android 11 with MitM interception. I'll give https://github.com/shroudedcode/apk-mitm a try on the weekend.
so far the patched app says "something strange happened" when trying to connect to api.vimeo.com. The actual video data from akamai is loaded just fine here. I guess that script is missing something
We go with a post request to https://api.vimeo.com/oauth/authorize/password
This includes a url encoded
%0D%0Ausername%3De%40mail.de%26password%3DTHEPASSWORD%26grant_type%3Dpassword%26scope%3Dprivate%20public%20create%20edit%20delete%20interact%20upload%20purchased%20stats
{
"access_token": "TOKENGABBELDIGOO",
"token_type": "bearer",
"scope": "private public create edit delete interact upload purchased stats",
"app": {
"name": "Vimeo Android App",
"uri": "/apps/53467"
},
"user": {
"uri": "/users/usernumber",
"name": "MYNAME",
"link": "https://vimeo.com/userusernumber",
"location": "",
"gender": "",
"bio": null,
"short_bio": null,
"membership": {
"type": "basic",
"display": "Basic",
"badge": {
"type": null
},
"subscription": {
"billing": {
"status": "none"
},
"trial": {
"has_been_in_free_trial": false
}
}
},
"created_time": "2021-01-21T15:23:03+00:00",
"pictures": {
"uri": null,
"active": false,
"type": "default",
"sizes": [{
"width": 30,
"height": 30,
"link": "https://i.vimeocdn.com/portrait/defaults-blue_30x30.png"
}, {
"width": 72,
"height": 72,
"link": "https://i.vimeocdn.com/portrait/defaults-blue_72x72.png"
}, {
"width": 75,
"height": 75,
"link": "https://i.vimeocdn.com/portrait/defaults-blue_75x75.png"
}, {
"width": 100,
"height": 100,
"link": "https://i.vimeocdn.com/portrait/defaults-blue_100x100.png"
}, {
"width": 144,
"height": 144,
"link": "https://i.vimeocdn.com/portrait/defaults-blue_144x144.png"
}, {
"width": 216,
"height": 216,
"link": "https://i.vimeocdn.com/portrait/defaults-blue_216x216.png"
}, {
"width": 288,
"height": 288,
"link": "https://i.vimeocdn.com/portrait/defaults-blue_288x288.png"
}, {
"width": 300,
"height": 300,
"link": "https://i.vimeocdn.com/portrait/defaults-blue_300x300.png"
}, {
"width": 360,
"height": 360,
"link": "https://i.vimeocdn.com/portrait/defaults-blue_360x360.png"
}],
"resource_key": "06cd312fcc3908e2d839aeb00ccaaf434acb0859",
"default_picture": true
},
"websites": [],
"metadata": {
"connections": {
"albums": {
"uri": "/users/usernumber/albums",
"options": ["GET"],
"total": 0
},
"appearances": {
"uri": "/users/usernumber/appearances",
"options": ["GET"],
"total": 0
},
"categories": {
"uri": "/users/usernumber/categories",
"options": ["GET"],
"total": 0
},
"channels": {
"uri": "/users/usernumber/channels",
"options": ["GET"],
"total": 0
},
"feed": {
"uri": "/users/usernumber/feed",
"options": ["GET"]
},
"followers": {
"uri": "/users/usernumber/followers",
"options": ["GET"],
"total": 0
},
"following": {
"uri": "/users/usernumber/following",
"options": ["GET"],
"total": 0
},
"groups": {
"uri": "/users/usernumber/groups",
"options": ["GET"],
"total": 0
},
"likes": {
"uri": "/users/usernumber/likes",
"options": ["GET"],
"total": 0
},
"membership": {
"uri": "/users/usernumber/membership/",
"options": ["PATCH"]
},
"moderated_channels": {
"uri": "/users/usernumber/channels?filter=moderated",
"options": ["GET"],
"total": 0
},
"portfolios": {
"uri": "/users/usernumber/portfolios",
"options": ["GET"],
"total": 0
},
"videos": {
"uri": "/users/usernumber/videos",
"options": ["GET"],
"total": 0
},
"watchlater": {
"uri": "/users/usernumber/watchlater",
"options": ["GET"],
"total": 0
},
"shared": {
"uri": "/users/usernumber/shared/videos",
"options": ["GET"],
"total": 0
},
"pictures": {
"uri": "/users/usernumber/pictures",
"options": ["GET", "POST"],
"total": 0
},
"recommended_users": {
"uri": "/me/recommendations/users",
"options": ["GET"],
"total": 0
},
"recommended_channels": {
"uri": "/me/recommendations/channels",
"options": ["GET"],
"total": 11
},
"watched_videos": {
"uri": "/me/watched/videos",
"options": ["GET"],
"total": 0
},
"folders_root": {
"uri": "/users/usernumber/folders/root",
"options": ["GET"]
},
"projects": {
"uri": "/users/usernumber/projects",
"options": ["GET", "POST"],
"total": 0
},
"team_members": {
"uri": "/users/usernumber/teammembers",
"options": ["GET", "POST"],
"total": 0,
"invites_remaining": 0,
"max_seats": 0
},
"teams": {
"uri": "/users/usernumber/teams",
"options": ["GET"],
"total": 1
},
"notifications": {
"uri": "/me/notifications",
"total_new": 0,
"new_total": 0,
"unread_total": 0,
"total": null,
"type_count": {
"comment": 0,
"credit": 0,
"like": 0,
"followed_user_video_available": 0,
"share": 0,
"video_available": 0,
"mention": 0,
"reply": 0,
"storage_warning": 0,
"follow": 0,
"account_expiration_warning": 0,
"vod_purchase": 0,
"vod_preorder_available": 0,
"vod_rental_expiration_warning": 0
},
"type_unseen_count": {
"comment": 0,
"credit": 0,
"like": 0,
"followed_user_video_available": 0,
"share": 0,
"video_available": 0,
"mention": 0,
"reply": 0,
"storage_warning": 0,
"follow": 0,
"account_expiration_warning": 0,
"vod_purchase": 0,
"vod_preorder_available": 0,
"vod_rental_expiration_warning": 0
}
},
"block": {
"uri": "/me/block",
"options": ["GET"],
"total": 0
},
"connected_apps": {
"uri": "/me/connected_apps",
"options": ["GET"],
"total": 0
}
},
"interactions": {
"facebook_connected_app": {
"is_connected": false,
"options": ["PUT"],
"uri": "/me/connected_apps/facebook",
"all_scopes": {
"publish_to_social": ["public_profile", "pages_show_list", "read_insights", "publish_video", "pages_manage_metadata", "pages_manage_posts"],
"business_creative": ["business_creative_management", "business_creative_insights"]
}
},
"youtube_connected_app": {
"is_connected": false,
"options": ["PUT"],
"uri": "/me/connected_apps/youtube",
"all_scopes": {
"publish_to_social": ["https://www.googleapis.com/auth/userinfo.profile", "https://www.googleapis.com/auth/youtube", "https://www.googleapis.com/auth/youtube.force-ssl", "https://www.googleapis.com/auth/youtube.readonly", "https://www.googleapis.com/auth/youtube.upload", "https://www.googleapis.com/auth/youtubepartner", "https://www.googleapis.com/auth/youtubepartner-channel-audit", "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", "https://www.googleapis.com/auth/yt-analytics.readonly"]
}
},
"linkedin_connected_app": {
"is_connected": false,
"options": ["PUT"],
"uri": "/me/connected_apps/linkedin",
"all_scopes": {
"publish_to_social": ["r_liteprofile", "w_member_social", "r_organization_social", "w_organization_social", "r_organization_admin"]
}
},
"twitter_connected_app": {
"is_connected": false,
"options": ["PUT"],
"uri": "/me/connected_apps/twitter",
"all_scopes": {
"publish_to_social": []
}
},
"pinterest_connected_app": {
"is_connected": false,
"options": ["PUT"],
"uri": "/me/connected_apps/pinterest",
"all_scopes": {
"publish_to_social": ["read_pins", "read_users", "read_secret_boards", "read_secret_pins", "write_boards", "write_pins"],
"business_creative": []
}
}
}
},
"location_details": {
"formatted_address": "",
"latitude": null,
"longitude": null,
"city": null,
"state": null,
"neighborhood": null,
"sub_locality": null,
"state_iso_code": null,
"country": null,
"country_iso_code": null
},
"skills": [],
"available_for_hire": false,
"can_work_remotely": false,
"preferences": {
"videos": {
"privacy": {
"view": "anybody",
"comments": "anybody",
"embed": "public",
"download": true,
"add": true
}
}
},
"content_filter": ["language", "drugs", "violence", "nudity", "safe", "unrated"],
"upload_quota": {
"space": {
"free": 524288000,
"max": 524288000,
"used": 0,
"showing": "periodic"
},
"periodic": {
"free": 524288000,
"max": 524288000,
"used": 0,
"reset_date": "2021-02-04T00:00:00-05:00"
},
"lifetime": {
"free": 5368709120,
"max": 5368709120,
"used": 0
}
},
"emails": [{
"email": "e@mail.de"
}],
"live_quota": {
"status": "available",
"time": {
"monthly_remaining": 600,
"monthly_maximum": 600,
"event_maximum": 36000
},
"streams": {
"remaining": 1,
"maximum": 1
}
},
"resource_key": "RESOURCEKEYNUMBER"
}
}
is returned
to see what the user owns we go with a fully url-encoded GET request to
https://api.vimeo.com/me/ondemand/library?fields=uri,
name,
description,
type,
link,
publish.time,
pictures.sizes.width,
pictures.sizes.link,
metadata.connections.videos,
film.uri,
film.name,
film.description,
film.created_time,
film.release_time,
film.duration,
film.live,
film.play.status,
film.play.progress,
film.play.drm,
film.play.dash,
film.play.hls,
film.play.progressive.type,
film.play.progressive.width,
film.play.progressive.height,
film.play.progressive.link_expiration_time,
film.play.progressive.link,
film.play.progressive.fps,
film.play.progressive.size,
film.play.progressive.md5,
film.play.progressive.log,
film.width,
film.height,
film.link,
film.pictures.sizes.width,
film.pictures.sizes.link,
film.status,
film.privacy.view,
film.privacy.comments,
film.privacy.download,
film.privacy._bypass_token,
film.review_link,
film.review_page.active,
film.review_page.link,
film.file_transfer,
film.spatial,
film.categories.uri,
film.metadata.interactions,
film.metadata.connections.comments,
film.metadata.connections.likes,
film.metadata.connections.recommendations,
film.metadata.connections.publish_to_social,
film.metadata.connections.available_albums.uri,
film.metadata.connections.available_albums.total,
film.metadata.connections.available_channels.uri,
film.metadata.connections.available_channels.total,
film.metadata.connections.trailer,
film.metadata.connections.playback,
film.metadata.connections.ondemand,
film.metadata.connections.season,
film.metadata.connections.live_stats,
film.stats,
film.password,
film.resource_key,
film.live,
film.metadata.connections.texttracks,
film.metadata.connections.users_with_access,
film.upload.status,
film.transcode.status,
film.user.uri,
film.user.id,
film.user.resource_key,
film.user.name,
film.user.bio,
film.user.account,
film.user.location,
film.user.pictures.sizes.width,
film.user.pictures.sizes.link,
film.user.is_staff,
film.user.is_creator,
film.user.membership,
film.user.metadata.connections.likes.uri,
film.user.metadata.connections.likes.total,
film.user.metadata.connections.moderated_channels.uri,
film.user.metadata.connections.moderated_channels.total,
film.user.metadata.connections.channels.uri,
film.user.metadata.connections.channels.total,
film.user.metadata.connections.following.uri,
film.user.metadata.connections.following.total,
film.user.metadata.connections.followers.uri,
film.user.metadata.connections.followers.total,
film.user.metadata.connections.videos.uri,
film.user.metadata.connections.videos.total,
film.user.metadata.connections.watchlater.uri,
film.user.metadata.connections.watchlater.total,
film.user.metadata.interactions.follow.added,
film.user.metadata.interactions.follow.uri,
film.user.metadata.connections.feed.uri,
film.user.metadata.connections.albums.total,
film.user.metadata.connections.connected_apps.uri,
film.user.metadata.connections.connected_apps.total,
film.user.metadata.connections.connected_apps.options,
film.user.metadata.connections.folders_root.uri,
film.user.metadata.connections.pictures,
film.user.metadata.connections.notifications,
film.user.live_quota.status,
film.user.metadata.interactions.facebook_connected_app,
film.user.metadata.interactions.youtube_connected_app,
film.user.metadata.interactions.linkedin_connected_app,
film.user.metadata.interactions.twitter_connected_app,
film.user.preferences.videos,
film.user.upload_quota,
film.user.emails,
trailer,
user.uri,
user.id,
user.resource_key,
user.name,
user.bio,
user.account,
user.location,
user.pictures.sizes.width,
user.pictures.sizes.link,
user.is_staff,
user.is_creator,
user.membership,
user.metadata.connections.likes.uri,
user.metadata.connections.likes.total,
user.metadata.connections.moderated_channels.uri,
user.metadata.connections.moderated_channels.total,
user.metadata.connections.channels.uri,
user.metadata.connections.channels.total,
user.metadata.connections.following.uri,
user.metadata.connections.following.total,
user.metadata.connections.followers.uri,
user.metadata.connections.followers.total,
user.metadata.connections.videos.uri,
user.metadata.connections.videos.total,
user.metadata.connections.watchlater.uri,
user.metadata.connections.watchlater.total,
user.metadata.interactions.follow.added,
user.metadata.interactions.follow.uri,
user.metadata.connections.feed.uri,
user.metadata.connections.albums.total,
user.metadata.connections.connected_apps.uri,
user.metadata.connections.connected_apps.total,
user.metadata.connections.connected_apps.options,
user.metadata.connections.folders_root.uri,
user.metadata.connections.pictures,
user.metadata.connections.notifications,
user.live_quota.status,
user.metadata.interactions.facebook_connected_app,
user.metadata.interactions.youtube_connected_app,
user.metadata.interactions.linkedin_connected_app,
user.metadata.interactions.twitter_connected_app,
user.preferences.videos,
user.upload_quota,
user.emails&sort=purchase_time&_video_override=true&direction=desc
line breaks are inserted for better readability.
If you have nothing you get back this block that looks similiar
{
"total": 0,
"page": 1,
"per_page": 25,
"paging": {
"next": null,
"previous": null,
"first": "/me/ondemand/library?fields=uri%2Cname%2Cdescription%2Ctype%2Clink%2Cpublish.time%2Cpictures.sizes.width%2Cpictures.sizes.link%2Cmetadata.connections.videos%2Cfilm.uri%2Cfilm.name%2Cfilm.description%2Cfilm.created_time%2Cfilm.release_time%2Cfilm.duration%2Cfilm.live%2Cfilm.play.status%2Cfilm.play.progress%2Cfilm.play.drm%2Cfilm.play.dash%2Cfilm.play.hls%2Cfilm.play.progressive.type%2Cfilm.play.progressive.width%2Cfilm.play.progressive.height%2Cfilm.play.progressive.link_expiration_time%2Cfilm.play.progressive.link%2Cfilm.play.progressive.fps%2Cfilm.play.progressive.size%2Cfilm.play.progressive.md5%2Cfilm.play.progressive.log%2Cfilm.width%2Cfilm.height%2Cfilm.link%2Cfilm.pictures.sizes.width%2Cfilm.pictures.sizes.link%2Cfilm.status%2Cfilm.privacy.view%2Cfilm.privacy.comments%2Cfilm.privacy.download%2Cfilm.privacy._bypass_token%2Cfilm.review_link%2Cfilm.review_page.active%2Cfilm.review_page.link%2Cfilm.file_transfer%2Cfilm.spatial%2Cfilm.categories.uri%2Cfilm.metadata.interactions%2Cfilm.metadata.connections.comments%2Cfilm.metadata.connections.likes%2Cfilm.metadata.connections.recommendations%2Cfilm.metadata.connections.publish_to_social%2Cfilm.metadata.connections.available_albums.uri%2Cfilm.metadata.connections.available_albums.total%2Cfilm.metadata.connections.available_channels.uri%2Cfilm.metadata.connections.available_channels.total%2Cfilm.metadata.connections.trailer%2Cfilm.metadata.connections.playback%2Cfilm.metadata.connections.ondemand%2Cfilm.metadata.connections.season%2Cfilm.metadata.connections.live_stats%2Cfilm.stats%2Cfilm.password%2Cfilm.resource_key%2Cfilm.live%2Cfilm.metadata.connections.texttracks%2Cfilm.metadata.connections.users_with_access%2Cfilm.upload.status%2Cfilm.transcode.status%2Cfilm.user.uri%2Cfilm.user.id%2Cfilm.user.resource_key%2Cfilm.user.name%2Cfilm.user.bio%2Cfilm.user.account%2Cfilm.user.location%2Cfilm.user.pictures.sizes.width%2Cfilm.user.pictures.sizes.link%2Cfilm.user.is_staff%2Cfilm.user.is_creator%2Cfilm.user.membership%2Cfilm.user.metadata.connections.likes.uri%2Cfilm.user.metadata.connections.likes.total%2Cfilm.user.metadata.connections.moderated_channels.uri%2Cfilm.user.metadata.connections.moderated_channels.total%2Cfilm.user.metadata.connections.channels.uri%2Cfilm.user.metadata.connections.channels.total%2Cfilm.user.metadata.connections.following.uri%2Cfilm.user.metadata.connections.following.total%2Cfilm.user.metadata.connections.followers.uri%2Cfilm.user.metadata.connections.followers.total%2Cfilm.user.metadata.connections.videos.uri%2Cfilm.user.metadata.connections.videos.total%2Cfilm.user.metadata.connections.watchlater.uri%2Cfilm.user.metadata.connections.watchlater.total%2Cfilm.user.metadata.interactions.follow.added%2Cfilm.user.metadata.interactions.follow.uri%2Cfilm.user.metadata.connections.feed.uri%2Cfilm.user.metadata.connections.albums.total%2Cfilm.user.metadata.connections.connected_apps.uri%2Cfilm.user.metadata.connections.connected_apps.total%2Cfilm.user.metadata.connections.connected_apps.options%2Cfilm.user.metadata.connections.folders_root.uri%2Cfilm.user.metadata.connections.pictures%2Cfilm.user.metadata.connections.notifications%2Cfilm.user.live_quota.status%2Cfilm.user.metadata.interactions.facebook_connected_app%2Cfilm.user.metadata.interactions.youtube_connected_app%2Cfilm.user.metadata.interactions.linkedin_connected_app%2Cfilm.user.metadata.interactions.twitter_connected_app%2Cfilm.user.preferences.videos%2Cfilm.user.upload_quota%2Cfilm.user.emails%2Ctrailer%2Cuser.uri%2Cuser.id%2Cuser.resource_key%2Cuser.name%2Cuser.bio%2Cuser.account%2Cuser.location%2Cuser.pictures.sizes.width%2Cuser.pictures.sizes.link%2Cuser.is_staff%2Cuser.is_creator%2Cuser.membership%2Cuser.metadata.connections.likes.uri%2Cuser.metadata.connections.likes.total%2Cuser.metadata.connections.moderated_channels.uri%2Cuser.metadata.connections.moderated_channels.total%2Cuser.metadata.connections.channels.uri%2Cuser.metadata.connections.channels.total%2Cuser.metadata.connections.following.uri%2Cuser.metadata.connections.following.total%2Cuser.metadata.connections.followers.uri%2Cuser.metadata.connections.followers.total%2Cuser.metadata.connections.videos.uri%2Cuser.metadata.connections.videos.total%2Cuser.metadata.connections.watchlater.uri%2Cuser.metadata.connections.watchlater.total%2Cuser.metadata.interactions.follow.added%2Cuser.metadata.interactions.follow.uri%2Cuser.metadata.connections.feed.uri%2Cuser.metadata.connections.albums.total%2Cuser.metadata.connections.connected_apps.uri%2Cuser.metadata.connections.connected_apps.total%2Cuser.metadata.connections.connected_apps.options%2Cuser.metadata.connections.folders_root.uri%2Cuser.metadata.connections.pictures%2Cuser.metadata.connections.notifications%2Cuser.live_quota.status%2Cuser.metadata.interactions.facebook_connected_app%2Cuser.metadata.interactions.youtube_connected_app%2Cuser.metadata.interactions.linkedin_connected_app%2Cuser.metadata.interactions.twitter_connected_app%2Cuser.preferences.videos%2Cuser.upload_quota%2Cuser.emails&sort=purchase_time&_video_override=true&direction=desc&page=1",
"last": "/me/ondemand/library?fields=uri%2Cname%2Cdescription%2Ctype%2Clink%2Cpublish.time%2Cpictures.sizes.width%2Cpictures.sizes.link%2Cmetadata.connections.videos%2Cfilm.uri%2Cfilm.name%2Cfilm.description%2Cfilm.created_time%2Cfilm.release_time%2Cfilm.duration%2Cfilm.live%2Cfilm.play.status%2Cfilm.play.progress%2Cfilm.play.drm%2Cfilm.play.dash%2Cfilm.play.hls%2Cfilm.play.progressive.type%2Cfilm.play.progressive.width%2Cfilm.play.progressive.height%2Cfilm.play.progressive.link_expiration_time%2Cfilm.play.progressive.link%2Cfilm.play.progressive.fps%2Cfilm.play.progressive.size%2Cfilm.play.progressive.md5%2Cfilm.play.progressive.log%2Cfilm.width%2Cfilm.height%2Cfilm.link%2Cfilm.pictures.sizes.width%2Cfilm.pictures.sizes.link%2Cfilm.status%2Cfilm.privacy.view%2Cfilm.privacy.comments%2Cfilm.privacy.download%2Cfilm.privacy._bypass_token%2Cfilm.review_link%2Cfilm.review_page.active%2Cfilm.review_page.link%2Cfilm.file_transfer%2Cfilm.spatial%2Cfilm.categories.uri%2Cfilm.metadata.interactions%2Cfilm.metadata.connections.comments%2Cfilm.metadata.connections.likes%2Cfilm.metadata.connections.recommendations%2Cfilm.metadata.connections.publish_to_social%2Cfilm.metadata.connections.available_albums.uri%2Cfilm.metadata.connections.available_albums.total%2Cfilm.metadata.connections.available_channels.uri%2Cfilm.metadata.connections.available_channels.total%2Cfilm.metadata.connections.trailer%2Cfilm.metadata.connections.playback%2Cfilm.metadata.connections.ondemand%2Cfilm.metadata.connections.season%2Cfilm.metadata.connections.live_stats%2Cfilm.stats%2Cfilm.password%2Cfilm.resource_key%2Cfilm.live%2Cfilm.metadata.connections.texttracks%2Cfilm.metadata.connections.users_with_access%2Cfilm.upload.status%2Cfilm.transcode.status%2Cfilm.user.uri%2Cfilm.user.id%2Cfilm.user.resource_key%2Cfilm.user.name%2Cfilm.user.bio%2Cfilm.user.account%2Cfilm.user.location%2Cfilm.user.pictures.sizes.width%2Cfilm.user.pictures.sizes.link%2Cfilm.user.is_staff%2Cfilm.user.is_creator%2Cfilm.user.membership%2Cfilm.user.metadata.connections.likes.uri%2Cfilm.user.metadata.connections.likes.total%2Cfilm.user.metadata.connections.moderated_channels.uri%2Cfilm.user.metadata.connections.moderated_channels.total%2Cfilm.user.metadata.connections.channels.uri%2Cfilm.user.metadata.connections.channels.total%2Cfilm.user.metadata.connections.following.uri%2Cfilm.user.metadata.connections.following.total%2Cfilm.user.metadata.connections.followers.uri%2Cfilm.user.metadata.connections.followers.total%2Cfilm.user.metadata.connections.videos.uri%2Cfilm.user.metadata.connections.videos.total%2Cfilm.user.metadata.connections.watchlater.uri%2Cfilm.user.metadata.connections.watchlater.total%2Cfilm.user.metadata.interactions.follow.added%2Cfilm.user.metadata.interactions.follow.uri%2Cfilm.user.metadata.connections.feed.uri%2Cfilm.user.metadata.connections.albums.total%2Cfilm.user.metadata.connections.connected_apps.uri%2Cfilm.user.metadata.connections.connected_apps.total%2Cfilm.user.metadata.connections.connected_apps.options%2Cfilm.user.metadata.connections.folders_root.uri%2Cfilm.user.metadata.connections.pictures%2Cfilm.user.metadata.connections.notifications%2Cfilm.user.live_quota.status%2Cfilm.user.metadata.interactions.facebook_connected_app%2Cfilm.user.metadata.interactions.youtube_connected_app%2Cfilm.user.metadata.interactions.linkedin_connected_app%2Cfilm.user.metadata.interactions.twitter_connected_app%2Cfilm.user.preferences.videos%2Cfilm.user.upload_quota%2Cfilm.user.emails%2Ctrailer%2Cuser.uri%2Cuser.id%2Cuser.resource_key%2Cuser.name%2Cuser.bio%2Cuser.account%2Cuser.location%2Cuser.pictures.sizes.width%2Cuser.pictures.sizes.link%2Cuser.is_staff%2Cuser.is_creator%2Cuser.membership%2Cuser.metadata.connections.likes.uri%2Cuser.metadata.connections.likes.total%2Cuser.metadata.connections.moderated_channels.uri%2Cuser.metadata.connections.moderated_channels.total%2Cuser.metadata.connections.channels.uri%2Cuser.metadata.connections.channels.total%2Cuser.metadata.connections.following.uri%2Cuser.metadata.connections.following.total%2Cuser.metadata.connections.followers.uri%2Cuser.metadata.connections.followers.total%2Cuser.metadata.connections.videos.uri%2Cuser.metadata.connections.videos.total%2Cuser.metadata.connections.watchlater.uri%2Cuser.metadata.connections.watchlater.total%2Cuser.metadata.interactions.follow.added%2Cuser.metadata.interactions.follow.uri%2Cuser.metadata.connections.feed.uri%2Cuser.metadata.connections.albums.total%2Cuser.metadata.connections.connected_apps.uri%2Cuser.metadata.connections.connected_apps.total%2Cuser.metadata.connections.connected_apps.options%2Cuser.metadata.connections.folders_root.uri%2Cuser.metadata.connections.pictures%2Cuser.metadata.connections.notifications%2Cuser.live_quota.status%2Cuser.metadata.interactions.facebook_connected_app%2Cuser.metadata.interactions.youtube_connected_app%2Cuser.metadata.interactions.linkedin_connected_app%2Cuser.metadata.interactions.twitter_connected_app%2Cuser.preferences.videos%2Cuser.upload_quota%2Cuser.emails&sort=purchase_time&_video_override=true&direction=desc&page=1"
},
"data": []
}
@yoshimo Thanks for investing your time and getting things working with the apk-mitm tool. Also works for me now :)
What do you think about using the "Device code grant"-method for authorization?
This way the Vimeo user doesn't have to enter a password in Kodi. The user can authenticate on a (mobile) device and can grant just the permissions required for the Kodi addon.
I think for the average user a "password&username" procedure is more intuitive and less work. Regarding #44 , we might have to cheat with the website , so far i have not been able to buy things in the official app. It shows only trailers with no purchase button unlike the official website
@yoshimo Small update: I started to implement the login (see PR above). I chose to use the device-code grant, because it returns an access-token with infinite lifetime (in contrast to "password&username", which returns an access-code only valid for an hour, and I don't want to bother with refresh-tokens and stuff). Also this way we don't have to store the password as clear-text.
Login/logout now works. Only thing left is the profile-folder and polishing.
Description
As a Vimeo plugin user I want to be able to login to my user account, so I can see my own videos and other details from my profile page.
Acceptance criteria
Login
item is shown in the root view if no user is authenticatedLogin
item is selected, a user can authenticate with a device code (https://developer.vimeo.com/api/authentication#understanding-auth-workflows)My profile
item is shown in the root viewLogout
item is shown in the root viewMy profile
item is selected, a list with the itemsVideos
,Likes
,Followers
,Following
,Channels
,Groups
is shownNotes
Think of a way to protect the Vimeo API secrets.The Vimeo API secret from the Android App will be used.