<?php

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

function tilfy_youtube_son_jeton_hatasi() {
	return (string) ( $GLOBALS['tilfy_youtube_jeton_hata'] ?? '' );
}

function tilfy_youtube_jeton_yenileme_gerek( $mesaj ) {
	$mesaj = strtolower( (string) $mesaj );
	if ( $mesaj === '' ) {
		return false;
	}
	return strpos( $mesaj, 'autherror' ) !== false
		|| strpos( $mesaj, 'invalid authentication' ) !== false
		|| strpos( $mesaj, 'invalid_grant' ) !== false
		|| strpos( $mesaj, 'token has been expired' ) !== false
		|| strpos( $mesaj, 'token has been revoked' ) !== false;
}

function tilfy_youtube_erisim_jetonu_al( $yenile = false ) {
	if ( $yenile || tilfy_jeton_suresi_doldu_mu( 'youtube_erisim_bitis', 300 ) ) {
		tilfy_ayar_kaydet(
			array(
				'youtube_erisim_jetonu' => '',
				'youtube_erisim_bitis'  => '',
			)
		);
		return tilfy_youtube_jeton_yenile();
	}
	$jeton = tilfy_ayar_al( 'youtube_erisim_jetonu' );
	if ( $jeton !== '' ) {
		return $jeton;
	}
	return tilfy_youtube_jeton_yenile();
}

function tilfy_youtube_jeton_yenile() {
	$GLOBALS['tilfy_youtube_jeton_hata'] = '';
	$yenileme = tilfy_ayar_al( 'youtube_yenileme_jetonu' );
	$istemci  = tilfy_ayar_al( 'youtube_istemci_id' );
	$gizli    = tilfy_ayar_al( 'youtube_istemci_gizli' );
	if ( $yenileme === '' || $istemci === '' || $gizli === '' ) {
		if ( $yenileme === '' ) {
			$GLOBALS['tilfy_youtube_jeton_hata'] = 'YouTube yenileme jetonu yok';
		}
		return '';
	}
	$yanit = wp_remote_post(
		'https://oauth2.googleapis.com/token',
		array(
			'timeout' => 30,
			'body'    => array(
				'client_id'     => $istemci,
				'client_secret' => $gizli,
				'refresh_token' => $yenileme,
				'grant_type'    => 'refresh_token',
			),
		)
	);
	if ( is_wp_error( $yanit ) ) {
		$GLOBALS['tilfy_youtube_jeton_hata'] = $yanit->get_error_message();
		return '';
	}
	$govde = json_decode( wp_remote_retrieve_body( $yanit ), true );
	if ( empty( $govde['access_token'] ) ) {
		$hata = (string) ( $govde['error_description'] ?? $govde['error'] ?? 'YouTube jeton yenilenemedi' );
		$GLOBALS['tilfy_youtube_jeton_hata'] = $hata;
		if ( (string) ( $govde['error'] ?? '' ) === 'invalid_grant' ) {
			tilfy_ayar_kaydet(
				array(
					'youtube_erisim_jetonu' => '',
					'youtube_erisim_bitis'  => '',
				)
			);
		}
		return '';
	}
	tilfy_ayar_kaydet(
		array(
			'youtube_erisim_jetonu' => $govde['access_token'],
			'youtube_erisim_bitis'  => (string) tilfy_jeton_bitis_unix( $govde['expires_in'] ?? 3600, 3600 ),
		)
	);
	return $govde['access_token'];
}

function tilfy_youtube_api_istek( $uc, $args = array(), $metot = 'GET', $govde = null, $tekrar = true ) {
	$jeton = tilfy_youtube_erisim_jetonu_al();
	if ( $jeton === '' ) {
		$ek = tilfy_youtube_son_jeton_hatasi();
		if ( $ek !== '' ) {
			return new WP_Error( 'tilfy_youtube', $ek . ' - Ayarlar → YouTube: Jetonları sıfırla, sonra yeniden bağlan.' );
		}
		return new WP_Error( 'tilfy_youtube', 'YouTube jetonu eksik - Ayarlar → YouTube ile bağlan.' );
	}
	$sonuc = tilfy_youtube_api_istek_ham( $uc, $args, $metot, $govde, $jeton );
	if ( is_wp_error( $sonuc ) && $tekrar && tilfy_youtube_jeton_yenileme_gerek( $sonuc->get_error_message() ) ) {
		tilfy_ayar_kaydet( array( 'youtube_erisim_jetonu' => '', 'youtube_erisim_bitis' => '' ) );
		$yeni = tilfy_youtube_jeton_yenile();
		if ( $yeni === '' ) {
			$ek = tilfy_youtube_son_jeton_hatasi();
			if ( $ek !== '' ) {
				return new WP_Error( 'tilfy_youtube', $ek . ' - Ayarlar → YouTube: Jetonları sıfırla, sonra yeniden bağlan.' );
			}
			return $sonuc;
		}
		return tilfy_youtube_api_istek( $uc, $args, $metot, $govde, false );
	}
	return $sonuc;
}

function tilfy_youtube_api_istek_ham( $uc, $args, $metot, $govde, $jeton ) {
	$url     = 'https://www.googleapis.com/youtube/v3/' . ltrim( $uc, '/' );
	$sorgu   = $args;
	$sorgu['access_token'] = $jeton;
	$secenek = array( 'timeout' => 60 );
	if ( $metot === 'POST' && $govde !== null ) {
		$url = add_query_arg( $sorgu, $url );
		$secenek['method']  = 'POST';
		$secenek['headers'] = array(
			'Authorization' => 'Bearer ' . $jeton,
			'Content-Type'  => 'application/json',
		);
		$secenek['body'] = wp_json_encode( $govde );
		$yanit = wp_remote_post( $url, $secenek );
	} else {
		$yanit = wp_remote_get( add_query_arg( $sorgu, $url ), $secenek );
	}
	if ( is_wp_error( $yanit ) ) {
		if ( function_exists( 'tilfy_api_yanit_wp_kaydet' ) ) {
			tilfy_api_yanit_wp_kaydet( 'youtube', $uc, $yanit, array( 'islem' => strtolower( $metot ) ) );
		}
		return $yanit;
	}
	$parsed = json_decode( wp_remote_retrieve_body( $yanit ), true );
	if ( function_exists( 'tilfy_api_yanit_wp_kaydet' ) ) {
		tilfy_api_yanit_wp_kaydet( 'youtube', $uc, $yanit, array( 'islem' => strtolower( $metot ) ) );
	}
	if ( ! is_array( $parsed ) ) {
		$kod = (int) wp_remote_retrieve_response_code( $yanit );
		return new WP_Error( 'tilfy_youtube', 'Gecersiz yanit (HTTP ' . $kod . ')' );
	}
	if ( isset( $parsed['error'] ) ) {
		$mesaj = (string) ( $parsed['error']['message'] ?? 'YouTube hata' );
		if ( ! empty( $parsed['error']['errors'][0]['reason'] ) ) {
			$mesaj .= ' [' . (string) $parsed['error']['errors'][0]['reason'] . ']';
		}
		return new WP_Error( 'tilfy_youtube', $mesaj );
	}
	return $parsed;
}

function tilfy_youtube_yukleme_playlist_id() {
	$kanal = tilfy_ayar_al( 'youtube_kanal_id' );
	if ( $kanal === '' ) {
		return '';
	}
	$veri = tilfy_youtube_api_istek(
		'channels',
		array(
			'part' => 'contentDetails',
			'id'   => $kanal,
		)
	);
	if ( is_wp_error( $veri ) ) {
		return '';
	}
	return (string) ( $veri['items'][0]['contentDetails']['relatedPlaylists']['uploads'] ?? '' );
}

function tilfy_youtube_icerikleri_cek( $opts = array() ) {
	@set_time_limit( 300 );
	$opts = is_array( $opts ) ? $opts : array();
	$mod  = ! empty( $opts['mod'] ) ? (string) $opts['mod'] : ( function_exists( 'tilfy_senkron_modu' ) ? tilfy_senkron_modu() : 'yeni' );
	$mod  = function_exists( 'tilfy_senkron_mod_normalize' ) ? tilfy_senkron_mod_normalize( $mod ) : ( $mod === 'tam' ? 'tam' : 'yeni' );
	$kanal = tilfy_ayar_al( 'youtube_kanal_id' );
	if ( $kanal === '' ) {
		return array( 'ok' => false, 'mesaj' => 'YouTube kanal ID eksik' );
	}
	if ( function_exists( 'tilfy_senkron_medya_uygun_mu' ) && ! tilfy_senkron_medya_uygun_mu( 'video' ) ) {
		return array( 'ok' => true, 'mesaj' => '0 YouTube (video senkron kapali)', 'adet' => 0 );
	}
	$playlist_id = tilfy_youtube_yukleme_playlist_id();
	$sayac       = 0;
	$page_token  = sanitize_text_field( (string) ( $opts['after'] ?? '' ) );
	$max_sayfa   = $mod === 'yeni' ? 4 : 40;
	$sayfa_no    = 0;
	if ( $playlist_id !== '' ) {
		do {
			$args = array(
				'part'       => 'snippet,contentDetails',
				'playlistId' => $playlist_id,
				'maxResults' => 50,
			);
			if ( $page_token !== '' ) {
				$args['pageToken'] = $page_token;
			}
			$veri = tilfy_youtube_api_istek( 'playlistItems', $args );
			if ( is_wp_error( $veri ) ) {
				if ( $sayac > 0 ) {
					return array( 'ok' => true, 'mesaj' => $sayac . ' YouTube icerigi cekildi (kismi)', 'adet' => $sayac );
				}
				return array( 'ok' => false, 'mesaj' => $veri->get_error_message() );
			}
			$bilinen = false;
			foreach ( (array) ( $veri['items'] ?? array() ) as $oge ) {
				$video_id = (string) ( $oge['contentDetails']['videoId'] ?? ( $oge['snippet']['resourceId']['videoId'] ?? '' ) );
				if ( $video_id === '' ) {
					continue;
				}
				if ( $mod === 'yeni' && function_exists( 'tilfy_icerik_kaynak_mevcut_mu' ) && tilfy_icerik_kaynak_mevcut_mu( 'youtube', $video_id ) ) {
					$bilinen = true;
					break;
				}
				$sn = $oge['snippet'] ?? array();
				tilfy_icerik_upsert(
					array(
						'kaynak_platform' => 'youtube',
						'kaynak_id'       => $video_id,
						'baslik'          => (string) ( $sn['title'] ?? '' ),
						'aciklama'        => (string) ( $sn['description'] ?? '' ),
						'medya_tipi'      => 'video',
						'medya_url'       => 'https://www.youtube.com/watch?v=' . $video_id,
						'kapak_url'       => (string) ( $sn['thumbnails']['high']['url'] ?? '' ),
						'kaynak_tarihi'   => (string) ( $sn['publishedAt'] ?? '' ),
						'durum'           => 'senkron',
					)
				);
				++$sayac;
			}
			if ( $bilinen ) {
				if ( function_exists( 'tilfy_senkron_son_zaman_kaydet' ) ) {
					tilfy_senkron_son_zaman_kaydet( 'youtube' );
				}
				return array( 'ok' => true, 'adet' => $sayac, 'mesaj' => $sayac . ' YouTube yeni icerik (artimli)' );
			}
			$page_token = (string) ( $veri['nextPageToken'] ?? '' );
			++$sayfa_no;
			if ( $page_token !== '' && $sayfa_no >= $max_sayfa ) {
				return array(
					'ok'    => true,
					'adet'  => $sayac,
					'devam' => true,
					'after' => $page_token,
					'mod'   => $mod,
					'mesaj' => $sayac . ' YouTube icerigi cekildi (devam kuyrukta)',
				);
			}
		} while ( $page_token !== '' );
		if ( function_exists( 'tilfy_senkron_son_zaman_kaydet' ) ) {
			tilfy_senkron_son_zaman_kaydet( 'youtube' );
		}
		return array( 'ok' => true, 'adet' => $sayac, 'mesaj' => $sayac . ' YouTube icerigi cekildi' );
	}
	do {
		$args = array(
			'part'       => 'snippet',
			'channelId'  => $kanal,
			'order'      => 'date',
			'type'       => 'video',
			'maxResults' => 50,
		);
		if ( $page_token !== '' ) {
			$args['pageToken'] = $page_token;
		}
		$veri = tilfy_youtube_api_istek( 'search', $args );
		if ( is_wp_error( $veri ) ) {
			if ( $sayac > 0 ) {
				return array( 'ok' => true, 'mesaj' => $sayac . ' YouTube icerigi cekildi (kismi)', 'adet' => $sayac );
			}
			return array( 'ok' => false, 'mesaj' => $veri->get_error_message() );
		}
		$bilinen = false;
		foreach ( (array) ( $veri['items'] ?? array() ) as $oge ) {
			$video_id = $oge['id']['videoId'] ?? '';
			if ( $video_id === '' ) {
				continue;
			}
			if ( $mod === 'yeni' && function_exists( 'tilfy_icerik_kaynak_mevcut_mu' ) && tilfy_icerik_kaynak_mevcut_mu( 'youtube', $video_id ) ) {
				$bilinen = true;
				break;
			}
			$sn = $oge['snippet'] ?? array();
			tilfy_icerik_upsert(
				array(
					'kaynak_platform' => 'youtube',
					'kaynak_id'       => $video_id,
					'baslik'          => (string) ( $sn['title'] ?? '' ),
					'aciklama'        => (string) ( $sn['description'] ?? '' ),
					'medya_tipi'      => 'video',
					'medya_url'       => 'https://www.youtube.com/watch?v=' . $video_id,
					'kapak_url'       => (string) ( $sn['thumbnails']['high']['url'] ?? '' ),
					'kaynak_tarihi'   => (string) ( $sn['publishedAt'] ?? '' ),
					'durum'           => 'senkron',
				)
			);
			++$sayac;
		}
		if ( $bilinen ) {
			if ( function_exists( 'tilfy_senkron_son_zaman_kaydet' ) ) {
				tilfy_senkron_son_zaman_kaydet( 'youtube' );
			}
			return array( 'ok' => true, 'adet' => $sayac, 'mesaj' => $sayac . ' YouTube yeni icerik (artimli)' );
		}
		$page_token = (string) ( $veri['nextPageToken'] ?? '' );
		++$sayfa_no;
		if ( $page_token !== '' && $sayfa_no >= $max_sayfa ) {
			return array(
				'ok'    => true,
				'adet'  => $sayac,
				'devam' => true,
				'after' => $page_token,
				'mod'   => $mod,
				'mesaj' => $sayac . ' YouTube icerigi cekildi (devam kuyrukta)',
			);
		}
	} while ( $page_token !== '' );
	if ( function_exists( 'tilfy_senkron_son_zaman_kaydet' ) ) {
		tilfy_senkron_son_zaman_kaydet( 'youtube' );
	}
	return array( 'ok' => true, 'adet' => $sayac, 'mesaj' => $sayac . ' YouTube icerigi cekildi' );
}

function tilfy_youtube_istatistikleri_cek() {
	$kanal = tilfy_ayar_al( 'youtube_kanal_id' );
	if ( $kanal === '' ) {
		return array( 'ok' => false, 'mesaj' => 'YouTube kanal ID eksik' );
	}
	$veri = tilfy_youtube_api_istek(
		'channels',
		array( 'part' => 'statistics', 'id' => $kanal )
	);
	if ( is_wp_error( $veri ) ) {
		return array( 'ok' => false, 'mesaj' => $veri->get_error_message() );
	}
	$ist = $veri['items'][0]['statistics'] ?? array();
	tilfy_istatistik_guncelle(
		array(
			'platform'           => 'youtube',
			'platform_icerik_id' => 'kanal',
			'goruntulenme'       => (int) ( $ist['viewCount'] ?? 0 ),
		)
	);

	$videolar = tilfy_youtube_api_istek(
		'search',
		array(
			'part'       => 'id',
			'channelId'  => $kanal,
			'type'       => 'video',
			'maxResults' => 50,
		)
	);
	if ( is_wp_error( $videolar ) ) {
		return array( 'ok' => true, 'mesaj' => 'Kanal istatistik guncellendi' );
	}
	$idler = array();
	foreach ( (array) ( $videolar['items'] ?? array() ) as $v ) {
		if ( ! empty( $v['id']['videoId'] ) ) {
			$idler[] = $v['id']['videoId'];
		}
	}
	if ( empty( $idler ) ) {
		return array( 'ok' => true, 'mesaj' => 'Kanal istatistik guncellendi' );
	}
	$stats = tilfy_youtube_api_istek(
		'videos',
		array(
			'part' => 'statistics,snippet',
			'id'   => implode( ',', $idler ),
		)
	);
	if ( is_wp_error( $stats ) ) {
		return array( 'ok' => true, 'mesaj' => 'Kanal istatistik guncellendi' );
	}
	foreach ( (array) ( $stats['items'] ?? array() ) as $video ) {
		$vid = $video['id'] ?? '';
		$st  = $video['statistics'] ?? array();
		global $wpdb;
		$icerik_id = (int) $wpdb->get_var(
			$wpdb->prepare(
				'SELECT id FROM ' . tilfy_tablo( 'icerik' ) . ' WHERE kaynak_platform = %s AND kaynak_id = %s',
				'youtube',
				$vid
			)
		);
		tilfy_istatistik_guncelle(
			array(
				'icerik_id'          => $icerik_id,
				'platform'           => 'youtube',
				'platform_icerik_id' => $vid,
				'goruntulenme'       => (int) ( $st['viewCount'] ?? 0 ),
				'begeni'             => (int) ( $st['likeCount'] ?? 0 ),
				'yorum'              => (int) ( $st['commentCount'] ?? 0 ),
			)
		);
	}
	return array( 'ok' => true, 'mesaj' => 'YouTube video istatistikleri guncellendi' );
}

function tilfy_youtube_paylasim_gonder( $icerik, $paylasim ) {
	$jeton = tilfy_youtube_jeton_yenile();
	if ( $jeton === '' ) {
		$jeton = tilfy_youtube_erisim_jetonu_al();
	}
	if ( $jeton === '' ) {
		return array( 'ok' => false, 'mesaj' => 'YouTube OAuth gerekli' );
	}

	$medya = tilfy_icerik_medya_hazirla( $icerik );
	if ( is_wp_error( $medya ) ) {
		return array( 'ok' => false, 'mesaj' => $medya->get_error_message() );
	}

	$dosya_yolu = get_attached_file( (int) $medya['dosya_id'] );
	if ( ! $dosya_yolu || ! is_readable( $dosya_yolu ) ) {
		return array( 'ok' => false, 'mesaj' => 'Video dosyasi okunamadi' );
	}
	if ( function_exists( 'tilfy_icerik_video_icin_gorsel_dosya_mi' ) && tilfy_icerik_video_icin_gorsel_dosya_mi( $icerik, (int) $medya['dosya_id'] ) ) {
		return array( 'ok' => false, 'mesaj' => 'Video beklenirken gorsel dosya bulundu; medyayi yeniden indirin' );
	}
	$mime = (string) get_post_mime_type( (int) $medya['dosya_id'] );
	if ( $mime !== '' && strpos( $mime, 'image/' ) === 0 ) {
		return array( 'ok' => false, 'mesaj' => 'YouTube video gerektirir; bu dosya gorsel (' . $mime . ')' );
	}

	$baslik = (string) ( $paylasim->ozel_baslik ?: $icerik->baslik );
	if ( $baslik === '' ) {
		$baslik = wp_trim_words( wp_strip_all_tags( (string) $icerik->aciklama ), 8, '' );
	}
	if ( $baslik === '' ) {
		$baslik = 'Tilfy video ' . gmdate( 'Y-m-d H:i' );
	}

	$aciklama = (string) ( $paylasim->ozel_aciklama ?: $icerik->aciklama );
	$etiketler = (string) ( $paylasim->ozel_etiketler ?: $icerik->etiketler );
	if ( $etiketler !== '' ) {
		$aciklama .= "\n\n" . $etiketler;
	}

	$ayar = function_exists( 'tilfy_paylasim_ayar_al' ) ? tilfy_paylasim_ayar_al( $paylasim ) : array();
	$cocuk    = ( $ayar['cocuk'] ?? 'hayir' ) === 'evet';
	$gizlilik = sanitize_key( (string) ( $ayar['gizlilik'] ?? 'public' ) );
	if ( ! in_array( $gizlilik, array( 'public', 'unlisted', 'private' ), true ) ) {
		$gizlilik = 'public';
	}
	$meta = tilfy_youtube_upload_baslat( $jeton, $dosya_yolu, $baslik, $aciklama, $cocuk, $gizlilik );
	if ( is_wp_error( $meta ) ) {
		return array( 'ok' => false, 'mesaj' => $meta->get_error_message() );
	}

	$video_id = (string) ( $meta['video_id'] ?? '' );
	if ( $video_id !== '' && function_exists( 'tilfy_youtube_paylasim_sonrasi_uygula' ) ) {
		tilfy_youtube_paylasim_sonrasi_uygula(
			$video_id,
			$ayar,
			array(
				'paylasim_id' => (int) ( $paylasim->id ?? 0 ),
				'icerik_id'   => (int) ( $icerik->id ?? 0 ),
			)
		);
	}

	return array(
		'ok'        => true,
		'hedef_id'  => $video_id,
		'hedef_url' => 'https://www.youtube.com/watch?v=' . rawurlencode( $video_id ),
	);
}

function tilfy_youtube_paylasim_sonrasi_uygula( $video_id, $ayar, $log_ekstra = array() ) {
	$video_id     = sanitize_text_field( (string) $video_id );
	$ayar         = is_array( $ayar ) ? $ayar : array();
	$playlist_id  = sanitize_text_field( (string) ( $ayar['playlist_id'] ?? '' ) );
	$short        = ( $ayar['tur'] ?? 'video' ) === 'short';
	$thumbnail_id = $short ? 0 : (int) ( $ayar['thumbnail_id'] ?? 0 );
	if ( $video_id === '' ) {
		return array( 'ok' => false, 'mesaj' => 'Video ID eksik' );
	}
	if ( $playlist_id === '' && $thumbnail_id <= 0 ) {
		if ( function_exists( 'tilfy_youtube_islem_log' ) ) {
			tilfy_youtube_islem_log( 'Son islem atlandi (playlist ve kapak yok)', $log_ekstra );
		}
		return array( 'ok' => true, 'mesaj' => 'Son islem gerekmedi' );
	}
	if ( function_exists( 'tilfy_youtube_islem_log' ) ) {
		$adimlar = array();
		if ( $playlist_id !== '' ) {
			$adimlar[] = 'playlist';
		}
		if ( $thumbnail_id > 0 ) {
			$adimlar[] = 'kapak';
		}
		tilfy_youtube_islem_log( 'YouTube son islem: ' . implode( ', ', $adimlar ), $log_ekstra );
	}
	$hatalar = array();
	if ( $playlist_id !== '' && function_exists( 'tilfy_youtube_playlist_ekle_dene' ) ) {
		$pl = tilfy_youtube_playlist_ekle_dene( $video_id, $playlist_id, $log_ekstra );
		if ( is_wp_error( $pl ) ) {
			$hatalar[] = $pl->get_error_message();
		} elseif ( $pl !== true ) {
			$hatalar[] = 'Playlist eklenemedi';
		}
	}
	if ( $thumbnail_id > 0 && function_exists( 'tilfy_youtube_kapak_bir_kez' ) ) {
		$kapak = tilfy_youtube_kapak_bir_kez( $video_id, $thumbnail_id, $log_ekstra );
		if ( is_wp_error( $kapak ) ) {
			$hatalar[] = $kapak->get_error_message();
		}
	}
	if ( ! empty( $hatalar ) ) {
		$mesaj = implode( '; ', $hatalar );
		if ( function_exists( 'tilfy_youtube_islem_log' ) ) {
			tilfy_youtube_islem_log( 'YouTube son islem hata: ' . $mesaj, $log_ekstra );
		}
		return array( 'ok' => false, 'mesaj' => $mesaj );
	}
	if ( function_exists( 'tilfy_youtube_islem_log' ) ) {
		tilfy_youtube_islem_log( 'YouTube son islem tamamlandi', $log_ekstra );
	}
	return array( 'ok' => true, 'mesaj' => 'YouTube son islem tamamlandi' );
}

function tilfy_youtube_playlist_id_coz( $ham ) {
	if ( is_array( $ham ) ) {
		return (string) ( $ham['playlistId'] ?? '' );
	}
	return (string) $ham;
}

function tilfy_youtube_oynatma_listeleri() {
	$kanal     = tilfy_ayar_al( 'youtube_kanal_id' );
	$gorulen   = array();
	$liste     = array();
	$son_hata  = '';
	$sorgular  = array();
	if ( $kanal !== '' ) {
		$sorgular[] = array( 'channelId' => $kanal );
	}
	$sorgular[] = array( 'mine' => 'true' );

	foreach ( $sorgular as $ek ) {
		$sayfa = '';
		do {
			$args = array_merge(
				array(
					'part'       => 'snippet',
					'maxResults' => 50,
				),
				$ek
			);
			if ( $sayfa !== '' ) {
				$args['pageToken'] = $sayfa;
			}
			$veri = tilfy_youtube_api_istek( 'playlists', $args );
			if ( is_wp_error( $veri ) ) {
				$son_hata = $veri->get_error_message();
				break;
			}
			foreach ( (array) ( $veri['items'] ?? array() ) as $oge ) {
				$id = tilfy_youtube_playlist_id_coz( $oge['id'] ?? '' );
				if ( $id === '' || isset( $gorulen[ $id ] ) ) {
					continue;
				}
				$gorulen[ $id ] = true;
				$baslik = trim( (string) ( $oge['snippet']['title'] ?? '' ) );
				$liste[] = array(
					'id'     => $id,
					'baslik' => $baslik !== '' ? $baslik : $id,
				);
			}
			$sayfa = (string) ( $veri['nextPageToken'] ?? '' );
		} while ( $sayfa !== '' );
	}

	if ( empty( $liste ) && $son_hata !== '' ) {
		return new WP_Error( 'tilfy_youtube', $son_hata );
	}
	return $liste;
}

function tilfy_youtube_kapak_uygun_mu() {
	$jeton = tilfy_youtube_erisim_jetonu_al();
	if ( $jeton === '' ) {
		return false;
	}
	$veri = tilfy_youtube_api_istek(
		'channels',
		array(
			'part' => 'status',
			'mine' => 'true',
		)
	);
	if ( is_wp_error( $veri ) ) {
		return false;
	}
	$durum = (array) ( $veri['items'][0]['status'] ?? array() );
	$uzun  = (string) ( $durum['longUploadsStatus'] ?? '' );
	return $uzun === 'allowed' || $uzun === 'eligible';
}

function tilfy_youtube_playlist_ekle( $video_id, $playlist_id ) {
	$video_id    = sanitize_text_field( $video_id );
	$playlist_id = sanitize_text_field( $playlist_id );
	if ( $video_id === '' || $playlist_id === '' ) {
		return new WP_Error( 'tilfy_youtube', 'Playlist veya video ID eksik' );
	}
	return tilfy_youtube_api_istek(
		'playlistItems',
		array( 'part' => 'snippet' ),
		'POST',
		array(
			'snippet' => array(
				'playlistId' => $playlist_id,
				'resourceId' => array(
					'kind'    => 'youtube#video',
					'videoId' => $video_id,
				),
			),
		)
	);
}

function tilfy_youtube_yetersiz_kapsam_mi( $mesaj ) {
	$mesaj = (string) $mesaj;
	return stripos( $mesaj, 'insufficient authentication scopes' ) !== false
		|| stripos( $mesaj, 'Insufficient Permission' ) !== false;
}

function tilfy_youtube_kapsam_hatasi_kaydet() {
	tilfy_ayar_kaydet( array( 'youtube_scope_eksik' => '1' ) );
}

function tilfy_youtube_islem_log( $mesaj, $ekstra = array() ) {
	if ( ! function_exists( 'tilfy_islem_log' ) ) {
		return;
	}
	$ekstra['platform'] = 'youtube';
	tilfy_islem_log( 'yukleme', $mesaj, $ekstra );
}

function tilfy_youtube_playlist_ekle_dene( $video_id, $playlist_id, $ekstra = array() ) {
	$son_hata = null;
	for ( $d = 0; $d < 2; $d++ ) {
		if ( $d > 0 ) {
			sleep( 2 );
		}
		$sonuc = tilfy_youtube_playlist_ekle( $video_id, $playlist_id );
		if ( ! is_wp_error( $sonuc ) ) {
			tilfy_youtube_islem_log( 'Playlist eklendi: ' . $playlist_id, $ekstra );
			return true;
		}
		$son_hata = $sonuc;
		if ( tilfy_youtube_yetersiz_kapsam_mi( $sonuc->get_error_message() ) ) {
			tilfy_youtube_kapsam_hatasi_kaydet();
			tilfy_youtube_islem_log( 'Playlist icin YouTube yeniden baglama gerekli (Ayarlar → Jetonlari sifirla → baglan)', $ekstra );
			return $sonuc;
		}
		tilfy_youtube_islem_log( 'Playlist denemesi ' . ( $d + 1 ) . '/2: ' . $sonuc->get_error_message(), $ekstra );
	}
	return $son_hata;
}

function tilfy_youtube_video_kapak_url_al( $video_id ) {
	$veri = tilfy_youtube_api_istek(
		'videos',
		array(
			'part' => 'snippet',
			'id'   => sanitize_text_field( $video_id ),
		)
	);
	if ( is_wp_error( $veri ) ) {
		return '';
	}
	$thumb = (array) ( $veri['items'][0]['snippet']['thumbnails'] ?? array() );
	foreach ( array( 'maxres', 'standard', 'high', 'medium', 'default' ) as $boyut ) {
		if ( ! empty( $thumb[ $boyut ]['url'] ) ) {
			return (string) $thumb[ $boyut ]['url'];
		}
	}
	return '';
}

function tilfy_youtube_kapak_dosya_kontrol( $thumbnail_id ) {
	$thumbnail_id = (int) $thumbnail_id;
	if ( $thumbnail_id <= 0 ) {
		return new WP_Error( 'tilfy_youtube', 'Kapak ID eksik' );
	}
	$dosya = get_attached_file( $thumbnail_id );
	if ( ! $dosya || ! is_readable( $dosya ) ) {
		return new WP_Error( 'tilfy_youtube', 'Kapak dosyasi okunamadi' );
	}
	$boyut = (int) filesize( $dosya );
	if ( $boyut <= 0 ) {
		return new WP_Error( 'tilfy_youtube', 'Kapak dosyasi bos' );
	}
	if ( $boyut > 2 * 1024 * 1024 ) {
		return new WP_Error( 'tilfy_youtube', 'Kapak en fazla 2 MB olmali' );
	}
	$meta = wp_get_attachment_metadata( $thumbnail_id );
	$w    = (int) ( $meta['width'] ?? 0 );
	$h    = (int) ( $meta['height'] ?? 0 );
	if ( $w > 0 && $h > 0 && ( $w < 640 || $h < 360 ) ) {
		return new WP_Error( 'tilfy_youtube', 'Kapak en az 640x360 olmali (secilen: ' . $w . 'x' . $h . ')' );
	}
	return true;
}

function tilfy_youtube_kapak_dosya_hazirla( $thumbnail_id ) {
	$dosya = get_attached_file( (int) $thumbnail_id );
	if ( ! $dosya || ! is_readable( $dosya ) ) {
		return new WP_Error( 'tilfy_youtube', 'Kapak dosyasi okunamadi' );
	}
	if ( ! function_exists( 'wp_get_image_editor' ) ) {
		require_once ABSPATH . 'wp-admin/includes/image.php';
	}
	$editor = wp_get_image_editor( $dosya );
	if ( is_wp_error( $editor ) ) {
		return array(
			'path' => $dosya,
			'temp' => false,
			'mime' => wp_check_filetype( $dosya )['type'] ?: 'image/jpeg',
		);
	}
	$editor->resize( 1280, 720, true );
	$kayit = $editor->save( null, 'image/jpeg' );
	if ( is_wp_error( $kayit ) || empty( $kayit['path'] ) ) {
		return array(
			'path' => $dosya,
			'temp' => false,
			'mime' => wp_check_filetype( $dosya )['type'] ?: 'image/jpeg',
		);
	}
	return array(
		'path' => (string) $kayit['path'],
		'temp' => true,
		'mime' => 'image/jpeg',
	);
}

function tilfy_youtube_kapak_ozel_mi( $video_id ) {
	$veri = tilfy_youtube_api_istek(
		'videos',
		array(
			'part' => 'contentDetails',
			'id'   => sanitize_text_field( $video_id ),
		)
	);
	if ( is_wp_error( $veri ) ) {
		return false;
	}
	return ! empty( $veri['items'][0]['contentDetails']['hasCustomThumbnail'] );
}

function tilfy_youtube_video_kapak_icin_hazir( $video_id, $max_deneme = 45, $bekle_sn = 3 ) {
	$video_id = sanitize_text_field( $video_id );
	if ( $video_id === '' ) {
		return new WP_Error( 'tilfy_youtube', 'Video ID eksik' );
	}
	for ( $i = 0; $i < $max_deneme; $i++ ) {
		$veri = tilfy_youtube_api_istek(
			'videos',
			array(
				'part' => 'processingDetails,status,contentDetails',
				'id'   => $video_id,
			)
		);
		if ( is_wp_error( $veri ) ) {
			return $veri;
		}
		$oge = (array) ( $veri['items'][0] ?? array() );
		if ( empty( $oge ) ) {
			sleep( $bekle_sn );
			continue;
		}
		if ( ! empty( $oge['contentDetails']['hasCustomThumbnail'] ) ) {
			return true;
		}
		$islem = (string) ( $oge['processingDetails']['processingStatus'] ?? '' );
		$yukle = (string) ( $oge['status']['uploadStatus'] ?? '' );
		$kapak = (string) ( $oge['processingDetails']['thumbnailsAvailability'] ?? '' );
		if ( $islem === 'succeeded' && $yukle === 'processed' && $kapak === 'available' ) {
			return true;
		}
		if ( $islem === 'failed' || $islem === 'terminated' || in_array( $yukle, array( 'failed', 'rejected', 'deleted' ), true ) ) {
			return new WP_Error( 'tilfy_youtube', 'Video islenemedi (' . $islem . ' / ' . $yukle . ')' );
		}
		sleep( $bekle_sn );
	}
	return new WP_Error( 'tilfy_youtube', 'Kapak icin video hazir olmadi (zaman asimi)' );
}

function tilfy_youtube_kapak_bir_kez( $video_id, $thumbnail_id, $ekstra = array() ) {
	$video_id     = sanitize_text_field( $video_id );
	$thumbnail_id = (int) $thumbnail_id;
	if ( $video_id === '' || $thumbnail_id <= 0 ) {
		return true;
	}
	if ( tilfy_youtube_kapak_ozel_mi( $video_id ) ) {
		tilfy_youtube_islem_log( 'Kapak zaten ozel, tekrar gonderilmedi', $ekstra );
		return true;
	}
	$dosya_kontrol = tilfy_youtube_kapak_dosya_kontrol( $thumbnail_id );
	if ( is_wp_error( $dosya_kontrol ) ) {
		tilfy_youtube_islem_log( $dosya_kontrol->get_error_message(), $ekstra );
		return $dosya_kontrol;
	}
	$hazir = tilfy_youtube_video_kapak_icin_hazir( $video_id );
	if ( is_wp_error( $hazir ) ) {
		tilfy_youtube_islem_log( 'Kapak beklenemedi: ' . $hazir->get_error_message(), $ekstra );
		return $hazir;
	}
	tilfy_youtube_islem_log( 'Video kapak icin hazir (islem bitti, otomatik kapaklar uretildi)', $ekstra );
	if ( tilfy_youtube_kapak_ozel_mi( $video_id ) ) {
		tilfy_youtube_islem_log( 'Kapak zaten ozel, tekrar gonderilmedi', $ekstra );
		return true;
	}
	$sonuc = tilfy_youtube_kapak_yukle( $video_id, $thumbnail_id );
	if ( is_wp_error( $sonuc ) ) {
		$mesaj = $sonuc->get_error_message();
		if ( stripos( $mesaj, 'notFound' ) !== false || stripos( $mesaj, '404' ) !== false ) {
			sleep( 5 );
			$sonuc = tilfy_youtube_kapak_yukle( $video_id, $thumbnail_id );
		}
	}
	if ( is_wp_error( $sonuc ) ) {
		tilfy_youtube_islem_log( 'Kapak yuklenemedi: ' . $sonuc->get_error_message(), $ekstra );
		if ( strpos( $sonuc->get_error_message(), '403' ) !== false ) {
			tilfy_youtube_islem_log( 'Ozel kapak izni yok - youtube.com/features ve youtube.com/verify', $ekstra );
		}
		return $sonuc;
	}
	for ( $k = 0; $k < 5; $k++ ) {
		if ( tilfy_youtube_kapak_ozel_mi( $video_id ) ) {
			tilfy_youtube_islem_log( 'Kapak onaylandi (hasCustomThumbnail)', $ekstra );
			return true;
		}
		if ( $k < 4 ) {
			sleep( 3 );
		}
	}
	tilfy_youtube_islem_log( 'Kapak API yaniti alindi ama YouTube ozel kapak olarak isaretlemedi', $ekstra );
	return true;
}

function tilfy_youtube_kapak_ekle_dene( $video_id, $thumbnail_id, $ekstra = array() ) {
	return tilfy_youtube_kapak_bir_kez( $video_id, $thumbnail_id, $ekstra );
}

function tilfy_youtube_video_islendi_mi( $video_id, $max_deneme = 30, $bekle_sn = 4 ) {
	$video_id = sanitize_text_field( $video_id );
	if ( $video_id === '' ) {
		return new WP_Error( 'tilfy_youtube', 'Video ID eksik' );
	}
	for ( $i = 0; $i < $max_deneme; $i++ ) {
		$veri = tilfy_youtube_api_istek(
			'videos',
			array(
				'part' => 'processingDetails,status',
				'id'   => $video_id,
			)
		);
		if ( is_wp_error( $veri ) ) {
			return $veri;
		}
		$oge = (array) ( $veri['items'][0] ?? array() );
		if ( empty( $oge ) ) {
			sleep( $bekle_sn );
			continue;
		}
		$islem = (string) ( $oge['processingDetails']['processingStatus'] ?? '' );
		$yukle = (string) ( $oge['status']['uploadStatus'] ?? '' );
		if ( $islem === 'succeeded' || $yukle === 'processed' ) {
			return true;
		}
		if ( $islem === 'failed' || $islem === 'terminated' || in_array( $yukle, array( 'failed', 'rejected', 'deleted' ), true ) ) {
			return new WP_Error( 'tilfy_youtube', 'Video islenemedi (' . $islem . ' / ' . $yukle . ')' );
		}
		sleep( $bekle_sn );
	}
	return new WP_Error( 'tilfy_youtube', 'Video islenmesi zaman asimina ugradi' );
}

function tilfy_youtube_kapak_yukle( $video_id, $thumbnail_id ) {
	$video_id     = sanitize_text_field( $video_id );
	$thumbnail_id = (int) $thumbnail_id;
	if ( $video_id === '' || $thumbnail_id <= 0 ) {
		return new WP_Error( 'tilfy_youtube', 'Kapak veya video ID eksik' );
	}
	$dosya_kontrol = tilfy_youtube_kapak_dosya_kontrol( $thumbnail_id );
	if ( is_wp_error( $dosya_kontrol ) ) {
		return $dosya_kontrol;
	}
	$hazir = tilfy_youtube_kapak_dosya_hazirla( $thumbnail_id );
	if ( is_wp_error( $hazir ) ) {
		return $hazir;
	}
	$dosya = (string) $hazir['path'];
	$mime  = (string) ( $hazir['mime'] ?? 'image/jpeg' );
	$temp  = ! empty( $hazir['temp'] );
	if ( ! is_readable( $dosya ) ) {
		return new WP_Error( 'tilfy_youtube', 'Kapak dosyasi okunamadi' );
	}
	$jeton = tilfy_youtube_erisim_jetonu_al();
	if ( $jeton === '' ) {
		if ( $temp ) {
			@unlink( $dosya );
		}
		return new WP_Error( 'tilfy_youtube', 'YouTube jetonu eksik' );
	}
	$govde = file_get_contents( $dosya );
	if ( $govde === false || $govde === '' ) {
		if ( $temp ) {
			@unlink( $dosya );
		}
		return new WP_Error( 'tilfy_youtube', 'Kapak dosya icerigi okunamadi' );
	}
	$url = 'https://www.googleapis.com/upload/youtube/v3/thumbnails/set?uploadType=media&videoId=' . rawurlencode( $video_id );
	$yanit = wp_remote_post(
		$url,
		array(
			'timeout' => 60,
			'headers' => array(
				'Authorization'  => 'Bearer ' . $jeton,
				'Content-Type'   => $mime,
				'Content-Length' => (string) strlen( $govde ),
			),
			'body'    => $govde,
		)
	);
	if ( $temp ) {
		@unlink( $dosya );
	}
	if ( is_wp_error( $yanit ) ) {
		return $yanit;
	}
	$kod = (int) wp_remote_retrieve_response_code( $yanit );
	$govde_yanit = (string) wp_remote_retrieve_body( $yanit );
	if ( $kod >= 400 ) {
		$parsed = json_decode( $govde_yanit, true );
		$mesaj  = is_array( $parsed ) && ! empty( $parsed['error']['message'] )
			? (string) $parsed['error']['message']
			: 'Kapak yuklenemedi (HTTP ' . $kod . ')';
		if ( ! empty( $parsed['error']['errors'][0]['reason'] ) ) {
			$mesaj .= ' [' . (string) $parsed['error']['errors'][0]['reason'] . ']';
		}
		if ( $kod === 403 ) {
			$mesaj .= ' - Ozel kapak izni: youtube.com/features';
		}
		return new WP_Error( 'tilfy_youtube', $mesaj );
	}
	$parsed = json_decode( $govde_yanit, true );
	if ( ! is_array( $parsed ) || empty( $parsed['items'][0] ) ) {
		return new WP_Error( 'tilfy_youtube', 'Kapak yaniti gecersiz (HTTP ' . $kod . ')' );
	}
	return $parsed;
}

function tilfy_youtube_upload_baslat( $jeton, $dosya_yolu, $baslik, $aciklama, $cocuk = false, $gizlilik = 'public' ) {
	$gizlilik = sanitize_key( (string) $gizlilik );
	if ( ! in_array( $gizlilik, array( 'public', 'unlisted', 'private' ), true ) ) {
		$gizlilik = 'public';
	}
	$boyut = filesize( $dosya_yolu );
	$mime  = wp_check_filetype( $dosya_yolu )['type'] ?: 'video/mp4';

	$basla = wp_remote_post(
		'https://www.googleapis.com/upload/youtube/v3/videos?uploadType=resumable&part=snippet,status',
		array(
			'timeout' => 60,
			'headers' => array(
				'Authorization' => 'Bearer ' . $jeton,
				'Content-Type'  => 'application/json',
				'X-Upload-Content-Length' => (string) $boyut,
				'X-Upload-Content-Type'   => $mime,
			),
			'body'    => wp_json_encode(
				array(
					'snippet' => array(
						'title'       => tilfy_metin_kisalt( $baslik, 100 ),
						'description' => tilfy_metin_kisalt( $aciklama, 5000 ),
						'categoryId'  => '22',
					),
					'status'  => array(
						'privacyStatus'           => $gizlilik,
						'selfDeclaredMadeForKids' => (bool) $cocuk,
					),
				)
			),
		)
	);

	if ( is_wp_error( $basla ) ) {
		if ( function_exists( 'tilfy_api_yanit_wp_kaydet' ) ) {
			tilfy_api_yanit_wp_kaydet( 'youtube', 'upload_init', $basla, array( 'islem' => 'paylasim_gonder' ) );
		}
		return $basla;
	}
	if ( function_exists( 'tilfy_api_yanit_wp_kaydet' ) ) {
		tilfy_api_yanit_wp_kaydet( 'youtube', 'upload_init', $basla, array( 'islem' => 'paylasim_gonder', 'ok' => tilfy_youtube_upload_konum_al( $basla ) !== '' ) );
	}

	$konum = tilfy_youtube_upload_konum_al( $basla );
	if ( $konum === '' ) {
		$kod      = (int) wp_remote_retrieve_response_code( $basla );
		$govde_ham = (string) wp_remote_retrieve_body( $basla );
		$parsed   = json_decode( $govde_ham, true );
		$mesaj    = 'Resumable URL alinamadi';
		if ( is_array( $parsed ) && ! empty( $parsed['error']['message'] ) ) {
			$mesaj = (string) $parsed['error']['message'];
		} elseif ( $kod > 0 ) {
			$mesaj .= ' (HTTP ' . $kod . ')';
		}
		if ( function_exists( 'tilfy_diag_log' ) ) {
			tilfy_diag_log( 'YouTube upload init HTTP ' . $kod . ' ' . substr( $govde_ham, 0, 800 ) );
		}
		return new WP_Error( 'tilfy_youtube', $mesaj );
	}

	$icerik = tilfy_youtube_dosya_yukle( $konum, $dosya_yolu, $mime );
	if ( is_wp_error( $icerik ) ) {
		if ( function_exists( 'tilfy_api_yanit_wp_kaydet' ) ) {
			tilfy_api_yanit_wp_kaydet( 'youtube', 'upload_put', $icerik, array( 'islem' => 'paylasim_gonder' ) );
		}
		return $icerik;
	}
	$yukle = $icerik;

	$govde    = json_decode( wp_remote_retrieve_body( $yukle ), true );
	$video_id = $govde['id'] ?? '';
	if ( function_exists( 'tilfy_api_yanit_wp_kaydet' ) ) {
		tilfy_api_yanit_wp_kaydet(
			'youtube',
			'upload_put',
			$yukle,
			array(
				'islem' => 'paylasim_gonder',
				'ok'    => $video_id !== '',
				'mesaj' => $video_id !== '' ? 'Video ID: ' . $video_id : '',
			)
		);
	}
	if ( $video_id === '' ) {
		$mesaj = 'Video ID donmedi';
		if ( is_array( $govde ) && ! empty( $govde['error']['message'] ) ) {
			$mesaj = (string) $govde['error']['message'];
			if ( ! empty( $govde['error']['errors'][0]['reason'] ) ) {
				$mesaj .= ' [' . (string) $govde['error']['errors'][0]['reason'] . ']';
			}
		} else {
			$ham = (string) wp_remote_retrieve_body( $yukle );
			if ( $ham !== '' ) {
				$mesaj = $ham;
			}
		}
		return new WP_Error( 'tilfy_youtube', $mesaj );
	}

	return array( 'video_id' => $video_id );
}

function tilfy_youtube_dosya_yukle( $konum, $dosya_yolu, $mime ) {
	$konum = (string) $konum;
	if ( $konum === '' || ! is_readable( $dosya_yolu ) ) {
		return new WP_Error( 'tilfy_youtube', 'Yukleme URL veya dosya gecersiz' );
	}
	$boyut = (int) filesize( $dosya_yolu );
	if ( $boyut <= 0 ) {
		return new WP_Error( 'tilfy_youtube', 'Video dosya boyutu okunamadi' );
	}
	$mime  = $mime !== '' ? $mime : 'video/mp4';
	$chunk = 8 * 1024 * 1024;
	$fp    = fopen( $dosya_yolu, 'rb' );
	if ( ! $fp ) {
		return new WP_Error( 'tilfy_youtube', 'Video dosyasi acilamadi' );
	}
	$bas       = 0;
	$son_yanit = null;
	while ( $bas < $boyut ) {
		$uzun = min( $chunk, $boyut - $bas );
		if ( $bas > 0 ) {
			fseek( $fp, $bas );
		}
		$veri = fread( $fp, $uzun );
		if ( $veri === false || strlen( $veri ) !== $uzun ) {
			fclose( $fp );
			return new WP_Error( 'tilfy_youtube', 'Video parcasi okunamadi' );
		}
		$son = $bas + $uzun - 1;
		$son_yanit = wp_remote_request(
			$konum,
			array(
				'method'  => 'PUT',
				'timeout' => 600,
				'headers' => array(
					'Content-Type'   => $mime,
					'Content-Length' => (string) $uzun,
					'Content-Range'  => 'bytes ' . $bas . '-' . $son . '/' . $boyut,
				),
				'body'    => $veri,
			)
		);
		if ( is_wp_error( $son_yanit ) ) {
			fclose( $fp );
			return $son_yanit;
		}
		$kod = (int) wp_remote_retrieve_response_code( $son_yanit );
		if ( $kod === 308 ) {
			$bas += $uzun;
			continue;
		}
		if ( $kod < 200 || $kod >= 300 ) {
			fclose( $fp );
			$govde_ham = (string) wp_remote_retrieve_body( $son_yanit );
			$parsed    = json_decode( $govde_ham, true );
			$mesaj     = 'Video yukleme HTTP ' . $kod;
			if ( is_array( $parsed ) && ! empty( $parsed['error']['message'] ) ) {
				$mesaj = (string) $parsed['error']['message'];
			}
			return new WP_Error( 'tilfy_youtube', $mesaj );
		}
		$bas += $uzun;
	}
	fclose( $fp );
	return $son_yanit;
}

function tilfy_youtube_upload_konum_al( $yanit ) {
	$konum = (string) wp_remote_retrieve_header( $yanit, 'location' );
	if ( $konum !== '' ) {
		return $konum;
	}
	$basliklar = wp_remote_retrieve_headers( $yanit );
	if ( is_object( $basliklar ) && isset( $basliklar['location'] ) ) {
		return (string) $basliklar['location'];
	}
	if ( is_array( $basliklar ) && ! empty( $basliklar['location'] ) ) {
		return (string) $basliklar['location'];
	}
	return '';
}
