Upload via Git Manager GUI - get-channel-id.php

This commit is contained in:
2026-03-30 18:42:52 +00:00
parent c08b3d6506
commit b9b6e5fa57

View File

@@ -1,98 +1,98 @@
<?php <?php
/** /**
* Hilfsskript: Finde Channel-ID für einen @Handle * Hilfsskript: Finde Channel-ID für einen @Handle
* Verwendet direkt die YouTube API (ohne WordPress) * Verwendet direkt die YouTube API (ohne WordPress)
*/ */
// API Key aus wp-config.php lesen // API Key aus wp-config.php lesen
$wp_config_path = __DIR__ . '/../../../wp-config.php'; $wp_config_path = __DIR__ . '/../../../wp-config.php';
$api_key = ''; $api_key = '';
if ( file_exists( $wp_config_path ) ) { if ( file_exists( $wp_config_path ) ) {
$wp_config_content = file_get_contents( $wp_config_path ); $wp_config_content = file_get_contents( $wp_config_path );
// Versuche YOUTUBE_API_KEY zu finden // Versuche YOUTUBE_API_KEY zu finden
if ( preg_match( "/define\s*\(\s*['\"]YOUTUBE_API_KEY['\"]\s*,\s*['\"]([^'\"]+)['\"]/", $wp_config_content, $matches ) ) { if ( preg_match( "/define\s*\(\s*['\"]YOUTUBE_API_KEY['\"]\s*,\s*['\"]([^'\"]+)['\"]/", $wp_config_content, $matches ) ) {
$api_key = $matches[1]; $api_key = $matches[1];
} }
} }
// Fallback: Direkte Eingabe hier (NUR FÜR TESTS!) // Fallback: Direkte Eingabe hier (NUR FÜR TESTS!)
if ( empty( $api_key ) ) { if ( empty( $api_key ) ) {
// TEMPORÄR: Trage hier deinen API Key ein // TEMPORÄR: Trage hier deinen API Key ein
$api_key = 'AIzaSyD-jSXZO-R4NJBySF0WL6SoFJmBDk2Gdbk'; // ← Dein API Key aus dem Customizer $api_key = 'AIzaSyD-jSXZO-R4NJBySF0WL6SoFJmBDk2Gdbk'; // ← Dein API Key aus dem Customizer
} }
if ( ! isset( $argv[1] ) ) { if ( ! isset( $argv[1] ) ) {
echo "Verwendung: php get-channel-id.php @DeinHandle\n"; echo "Verwendung: php get-channel-id.php @DeinHandle\n";
echo "Beispiel: php get-channel-id.php @afartv\n"; echo "Beispiel: php get-channel-id.php @afartv\n";
exit(1); exit(1);
} }
$handle = $argv[1]; $handle = $argv[1];
if ( empty( $api_key ) ) { if ( empty( $api_key ) ) {
echo "❌ Kein YouTube API Key gefunden!\n"; echo "❌ Kein YouTube API Key gefunden!\n";
echo " Trage den API Key temporär in Zeile 19 ein ODER\n"; echo " Trage den API Key temporär in Zeile 19 ein ODER\n";
echo " Definiere YOUTUBE_API_KEY in wp-config.php\n"; echo " Definiere YOUTUBE_API_KEY in wp-config.php\n";
exit(1); exit(1);
} }
// @ entfernen falls vorhanden // @ entfernen falls vorhanden
$handle = ltrim( $handle, '@' ); $handle = ltrim( $handle, '@' );
echo "=== Channel-ID Abfrage ===\n\n"; echo "=== Channel-ID Abfrage ===\n\n";
echo "Handle: @$handle\n"; echo "Handle: @$handle\n";
echo "API Key: " . substr($api_key, 0, 10) . "... (" . strlen($api_key) . " chars)\n\n"; echo "API Key: " . substr($api_key, 0, 10) . "... (" . strlen($api_key) . " chars)\n\n";
// YouTube Data API v3: search.list // YouTube Data API v3: search.list
$search_url = 'https://www.googleapis.com/youtube/v3/search?' . http_build_query( array( $search_url = 'https://www.googleapis.com/youtube/v3/search?' . http_build_query( array(
'part' => 'snippet', 'part' => 'snippet',
'q' => '@' . $handle, 'q' => '@' . $handle,
'type' => 'channel', 'type' => 'channel',
'key' => $api_key, 'key' => $api_key,
) ); ) );
echo "Sende API-Anfrage...\n"; echo "Sende API-Anfrage...\n";
$context = stream_context_create( array( $context = stream_context_create( array(
'http' => array( 'http' => array(
'timeout' => 10, 'timeout' => 10,
), ),
) ); ) );
$response = file_get_contents( $search_url, false, $context ); $response = file_get_contents( $search_url, false, $context );
if ( $response === false ) { if ( $response === false ) {
echo "❌ API-Anfrage fehlgeschlagen\n"; echo "❌ API-Anfrage fehlgeschlagen\n";
exit(1); exit(1);
} }
$data = json_decode( $response, true ); $data = json_decode( $response, true );
if ( isset( $data['error'] ) ) { if ( isset( $data['error'] ) ) {
echo "❌ YouTube API Fehler:\n"; echo "❌ YouTube API Fehler:\n";
echo " Code: " . $data['error']['code'] . "\n"; echo " Code: " . $data['error']['code'] . "\n";
echo " Nachricht: " . $data['error']['message'] . "\n"; echo " Nachricht: " . $data['error']['message'] . "\n";
exit(1); exit(1);
} }
if ( empty( $data['items'] ) ) { if ( empty( $data['items'] ) ) {
echo "❌ Kein Kanal gefunden für @$handle\n"; echo "❌ Kein Kanal gefunden für @$handle\n";
echo " Versuche es mit einem anderen @Handle oder mit der vollständigen Kanal-URL.\n"; echo " Versuche es mit einem anderen @Handle oder mit der vollständigen Kanal-URL.\n";
exit(1); exit(1);
} }
$channel = $data['items'][0]; $channel = $data['items'][0];
$channel_id = $channel['id']['channelId']; $channel_id = $channel['id']['channelId'];
$channel_title = $channel['snippet']['title']; $channel_title = $channel['snippet']['title'];
echo "\n✅ Kanal gefunden!\n\n"; echo "\n✅ Kanal gefunden!\n\n";
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n"; echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n";
echo "Kanal-Titel: $channel_title\n"; echo "Kanal-Titel: $channel_title\n";
echo "Channel-ID: $channel_id\n"; echo "Channel-ID: $channel_id\n";
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n"; echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n";
echo "📋 Kopiere diese Channel-ID in dein Livestream-Post:\n"; echo "📋 Kopiere diese Channel-ID in dein Livestream-Post:\n";
echo " Livestreams → Bearbeiten → YouTube Kanal-ID: $channel_id\n\n"; echo " Livestreams → Bearbeiten → YouTube Kanal-ID: $channel_id\n\n";
echo "✅ Fertig!\n"; echo "✅ Fertig!\n";