/youtube-video-id-generator

This class mimics the algorithm used by YouTube to generate unique video IDs.

Primary LanguagePHPMIT LicenseMIT

YoutubeVideoIdGenerator

This class mimics the algorithm used by YouTube to generate unique video IDs.

Let me explain the class:

  • We define a class called YoutubeVideoIdGenerator that represents our YouTube video ID generator.
  • We define three constants: VIDEO_ID_LENGTH with a value of 11, which represents the length of a YouTube video ID, VIDEO_ID_CHARACTERS with a string that contains all the characters that can be used in a YouTube video ID, and DEFAULT_ALGORITHM with a value of sha256, which represents the default algorithm to use for ID generation.
  • We define two private properties: $algorithm, which represents the algorithm to use for ID generation, and $secret_key, which represents the secret key to use for ID generation. We also define a constructor that allows us to set the $secret_key and $algorithm properties.
  • We define a public method called generateId that generates a YouTube video ID. This method calls two private methods: generateRandomString and convertHashToId. generateRandomString generates a random string of characters with a length of 11 using the characters in VIDEO_ID_CHARACTERS, while convertHashToId converts a hash generated by the algorithm and the random string to a YouTube video ID.
  • We define two private methods: generateRandomString and convertHashToId. generateRandomString generates a random string of characters with a length of 11 using the characters in VIDEO_ID_CHARACTERS, while convertHashToId converts a hash generated by the algorithm and the random string to a YouTube video ID.
  • We define a public method called getVideoLink that returns the YouTube video link for a given video ID.

To use this class, you can create an instance of it with a secret key:

$generator = new YoutubeVideoIdGenerator('your_secret_key');

# You can then generate a YouTube video ID:
$video_id = $generator->generateId();

# Finally, you can get the YouTube video link for the generated ID:
$video_link = $generator->getVideoLink($video_id);
echo $video_link;

This will output a link like https://www.youtube.com/watch?v=LhiFw_2EasE, which is a valid YouTube video link.

Authors

Ramazan Çetinkaya

License

This project is licensed under the [MIT] License - see the LICENSE.md file for details.

Copyright

Copyright (c) [2023] [Ramazan Çetinkaya]