Skip to content

Sharing & Deep Linking

Deep linking allows users to share content and navigate directly to specific videos, channels, or screens within your app. Vidori automatically generates shareable links with rich social media previews.

When a user shares content from your app, Vidori generates a link with the /og/ prefix:

https://yourapp.vidori.co/og/movie/abc123

When someone opens this link:

  1. Social media crawlers (Facebook, Twitter, etc.) receive HTML with Open Graph meta tags — title, description, and poster image
  2. Mobile users with the app installed — iOS/Android intercepts the URL via Universal Links / App Links, strips the /og/ prefix, and navigates directly to the content
  3. Desktop/web users — The deep-link service redirects to the web app’s detail page
Share link: https://yourapp.vidori.co/og/movie/abc123
┌──────────────────────────────────────────────────────┐
│ Social crawler → OG meta tags (title, image, desc) │
│ iOS/Android app → Opens native app to details page │
│ Desktop browser → Redirects to web app │
│ App not installed → Opens in mobile browser │
└──────────────────────────────────────────────────────┘
Link TypeURL PatternOpens
Movie details/movie/{movieId}Movie detail page
Series details/series/{seriesId}Series detail page
News article/news/{newsId}News detail page
Channel/channel/{channelId}Channel detail page
Asset details/details/{assetId}Auto-detected detail page
Watch/watch/{assetId}Video player (movies, episodes, channels)
Link TypeURL PatternOpens
CTV Login/ctv-login/{verificationCode}TV device login verification
CTV Register/ctv-register/{verificationCode}TV device registration

Deep linking is configured automatically at build time for each tenant.

Universal Links are configured during the CI/CD build process:

  • iosSetup.sh populates the Associated Domains entitlement with tenant-specific domains
  • The URL scheme (co.vidori.{tenantId}) is set in Info.plist
  • AppDelegate.mm includes RCTLinkingManager handlers for both URL schemes and Universal Links

The apple-app-site-association file is served by the deep-link service at /.well-known/apple-app-site-association. Set the APPLE_TEAM_ID and APPLE_BUNDLE_ID environment variables on the deep-link service.

On native apps, the share button uses the device’s native share sheet (Share.share() API). This gives users access to all sharing options on their device — messaging apps, social media, email, clipboard, etc.

The share button appears on:

  • Movie detail pages
  • Series detail pages
  • News detail pages
  • Channel detail pages

On web, the share button shows a popup with social platform options:

OptionDescription
Copy LinkCopies the share URL to clipboard
Twitter/XOpens Twitter with pre-filled post
FacebookOpens Facebook share dialog
WhatsAppOpens WhatsApp with the link
EmailOpens email client with the link

When links are shared on social media, the deep-link service generates rich preview cards using Open Graph meta tags:

TagContent
og:titleContent title
og:descriptionContent description
og:imagePoster image (1280x720)
og:typevideo.movie, video.tv_show, article, etc.
og:site_nameYour app name
twitter:cardsummary_large_image

Share links use your tenant’s domain by default (e.g., https://{tenantId}.vidori.co/og/...). If a verified custom domain is configured, share links will use it instead (e.g., https://app.yourbrand.com/og/...).

  1. Share an asset from the app to get a share link
  2. Test on iOS device — verify the app opens and navigates to the correct content
  3. Test on Android device — verify the same
  4. Open the link in a desktop browser — verify redirect to the web app
  5. Verify social media previews by pasting the link into Twitter, Facebook, or LinkedIn
  6. Verify the AASA and assetlinks.json files:
    curl https://yourdomain/.well-known/apple-app-site-association
    curl https://yourdomain/.well-known/assetlinks.json

For first-time app installs, Vidori supports deferred deep linking:

  • iOS: The app queries the backend for a pending deep link URI on first launch
  • Android: Uses the Play Install Referrer API to retrieve the deep link from the install referrer

This allows users who install the app after clicking a share link to be taken directly to the shared content on first launch.