title: Android Unity3D VideoPlayer Playing video "from URL" not working properly
body: <p>Platform: Unity 2020.1.0f1</p>
  <p>I have a weird problem while creating a little game that is meant to download videos from a remote URL to Application.PersistentDataPath and play them in the Unity3D-VideoPlayer using the &quot;RenderTexture&quot;-way by pressing a button for a specific video.</p>
  <p>In the editor EVERYTHING works fine...</p>
  <p>On IOS EVERYTHING works fine...</p>
  <p>On Android (no matter which version) only the video from the asset folder is played properly. Accessing a downloaded file from Application.persistentDataPath is simply showing nothing on Android...</p>
  <p>Things I checked (in addition to simple blindness):</p>
  <ul>
  <li>&quot;External Write Permission&quot; &gt; forced everything on &quot;internal&quot;... not working</li>
  <li>Using Path.Combine() and/or &quot;string filepath = ...&quot;</li>
  <li>&quot;Different Video Formats&quot; &gt; nope... the asset video is playing properly without transcoding (it is h.264 AVC, 650x650px, 30fps - AAC Audio, 44,1kHz, Bps 32)</li>
  </ul>
  <p>Sample code below, the test scene can also be downloaded here:
  <a href="http://weristaxel.de/upload/Videotest.unity" rel="nofollow noreferrer">http://weristaxel.de/upload/Videotest.unity</a>
  <a href="http://weristaxel.de/upload/VideotestController.cs" rel="nofollow noreferrer">http://weristaxel.de/upload/VideotestController.cs</a></p>
  <p>Video in Unity asset folder:
  <a href="https://corolympics.azurewebsites.net/assets/game1howto.mov" rel="nofollow noreferrer">https://corolympics.azurewebsites.net/assets/game1howto.mov</a></p>
  <p>What am I missing?</p>
  <pre><code>    public void PlayFromPersistent()
      {
  // NOT WORKING ON ANDROID
          VideoPlayer VideoHowTo = VideotestCanvas.transform.Find(&quot;VideoPlayer&quot;).GetComponent&lt;VideoPlayer&gt;();
          string filePath = Application.persistentDataPath + &quot;/game2howto.mov&quot;;
          VideoHowTo.Stop();
          VideoHowTo.url = filePath;
          VideoHowTo.source = VideoSource.Url;
          DebugText.text = &quot;VideoHowTo.url = &quot; + filePath;
          VideoHowTo.Prepare();
          VideoHowTo.Play();
      }
  
      public void PlayFromAssets()
      {
  // WORKING ON ANDROID
          VideoPlayer VideoHowTo = VideotestCanvas.transform.Find(&quot;VideoPlayer&quot;).GetComponent&lt;VideoPlayer&gt;();
          VideoHowTo.Stop();
          VideoHowTo.clip = assetVideo;
          VideoHowTo.source = VideoSource.VideoClip;
          DebugText.text = &quot;VideoHowTo.clip set -  original path &quot; + assetVideo.originalPath;
          VideoHowTo.Play();
      }
  
      public void DownloadVideo()
      {
  // THIS DOWNLOADS A TEST VIDEO TO &quot;persistentDataPath&quot;...
          string url = &quot;https://corolympics.azurewebsites.net/assets/game2howto.mov&quot;;
          Debug.Log(&quot;Downloading &quot; + url);
          var uwr = new UnityWebRequest(url, UnityWebRequest.kHttpVerbGET);
          string filename = url.Split('/').Last();
          string path = Path.Combine(Application.persistentDataPath , filename);
          uwr.downloadHandler = new DownloadHandlerFile(path);
          uwr.SendWebRequest();
          DebugText.text = &quot;Download to &quot; + path + &quot; finished&quot;;
      }
  
      public void AddListener()
      {
  // NOT WORKING ON ANDROID - THIS ADDS A LISTENER TO AN EMPTY BUTTON TO EMULATE THE TARGET BEHAVIOUR
          Button button = VideotestCanvas.transform.Find(&quot;FromPersistentListenerButton&quot;).GetComponent&lt;Button&gt;();
          Color blueColor = new Color32(52, 152, 219, 255);
          button.GetComponent&lt;Image&gt;().color = blueColor;
          button.onClick.AddListener(() =&gt;
          {
              VideoPlayer VideoHowTo = VideotestCanvas.transform.Find(&quot;VideoPlayer&quot;).GetComponent&lt;VideoPlayer&gt;();
              string filePath = Application.persistentDataPath + &quot;/game2howto.mov&quot;;
              VideoHowTo.Stop();
              VideoHowTo.url = filePath;
              VideoHowTo.source = VideoSource.Url;
              DebugText.text = &quot;VideoHowTo.url = &quot; + filePath;
              VideoHowTo.Play();
          });
      }
  </code></pre>