Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add login #3

Closed
5 tasks done
jaylinski opened this issue Sep 7, 2019 · 9 comments · Fixed by #50
Closed
5 tasks done

Add login #3

jaylinski opened this issue Sep 7, 2019 · 9 comments · Fixed by #50
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@jaylinski
Copy link
Owner

jaylinski commented Sep 7, 2019

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

  • A Login item is shown in the root view if no user is authenticated
  • If the Login item is selected, a user can authenticate with a device code (https://developer.vimeo.com/api/authentication#understanding-auth-workflows)
  • If a user is authenticated, a My profile item is shown in the root view
  • If a user is authenticated, a Logout item is shown in the root view
  • If the My profile item is selected, a list with the items Videos, Likes, Followers, Following, Channels, Groups is shown

Notes

Think of a way to protect the Vimeo API secrets. The Vimeo API secret from the Android App will be used.

@jaylinski jaylinski added the enhancement New feature or request label Sep 7, 2019
@jaylinski jaylinski added this to the v5.1.0 milestone Sep 7, 2019
@jaylinski jaylinski modified the milestones: v5.1.0, v5.2.0 Feb 24, 2020
@jaylinski jaylinski self-assigned this Aug 23, 2020
@yoshimo
Copy link

yoshimo commented Jan 21, 2021

Have you cracked the pinning on the android app @jaylinski ?

@jaylinski
Copy link
Owner Author

@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.

@yoshimo
Copy link

yoshimo commented Jan 21, 2021

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

@yoshimo
Copy link

yoshimo commented Jan 31, 2021

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

@yoshimo
Copy link

yoshimo commented Jan 31, 2021

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": []
}

@jaylinski
Copy link
Owner Author

jaylinski commented Jan 31, 2021

@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.

@yoshimo
Copy link

yoshimo commented Jan 31, 2021

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

jaylinski added a commit that referenced this issue Feb 10, 2021
Resolves #3
@jaylinski jaylinski mentioned this issue Feb 10, 2021
jaylinski added a commit that referenced this issue Feb 10, 2021
Resolves #3
@jaylinski
Copy link
Owner Author

@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.

jaylinski added a commit that referenced this issue Feb 11, 2021
Resolves #3
@jaylinski
Copy link
Owner Author

Login/logout now works. Only thing left is the profile-folder and polishing.

jaylinski added a commit that referenced this issue Feb 11, 2021
Resolves #3
jaylinski added a commit that referenced this issue Feb 12, 2021
Resolves #3
jaylinski added a commit that referenced this issue Feb 13, 2021
Resolves #3
jaylinski added a commit that referenced this issue Feb 18, 2021
Resolves #3
jaylinski added a commit that referenced this issue Feb 23, 2021
Resolves #3
jaylinski added a commit that referenced this issue Feb 23, 2021
Resolves #3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants