     
     public required init(options: Options) {
         super.init(options: options)
-        
-        asset = createAsset(from: options[kSourceUrl] as? String)
+        if let urlString = options[kSourceUrl] as? String, let url = URL(string: urlString) {
+            asset = AVURLAssetWithCookiesBuilder(url: url).asset
+        }
         
         player = createAVPlayer(with: asset, shouldLoop: options[kLoop] as? Bool ?? false)
         player.allowsExternalPlayback = isExternalPlaybackEnabled

        playerLayer = AVPlayerLayer(player: player)
        
        setAudioSessionCategory(to: .playback)
    }
    
    private func createAsset(from sourceUrl: String?) -> AVURLAsset? {
        guard let urlString = sourceUrl, let url = URL(string: urlString) else { return nil }
        return AVURLAssetWithCookiesBuilder(url: url).asset
    }

    @objc public func setDelegate(_ delegate: AVAssetResourceLoaderDelegate) {

        selectDefaultSubtitleIfNeeded()
    }
    
    private func initializePlaybackResources(with asset: AVURLAsset, and item: AVPlayerItem) {
        self.asset = asset
        self.itemInfo = AVPlayerItemInfo(item: item, delegate: self)
    }
    
    private func observe(player: AVPlayer) {
