#!/usr/bin/perl
#
# Invalid API key! Fuck you, YouTube.
#
# Search YouTube, return URL to first result
# (C)2020 "The Almighty Pegasus Epsilon" <pegasus@pimpninjas.org>
# Distribute Unmodified - http://pegasus.pimpninjas.org/license
use strict;
use v5.10;
use IO::Socket::SSL;
my $host = "www.youtube.com";
my $path = "/results?search_query=";
my $query = join "+", @ARGV;
$query =~ s/ /+/g;
my $yt = IO::Socket::SSL->new("$host:443")
or die "SSL socket error";
say $yt "GET $path$query HTTP/1.0\r";
say $yt "Host: $host\r";
say $yt "\r";
while (<$yt>) {
/"videoId": ?"([^"]+)"/ && do {
say "youtube.com/watch?v=$1";
exit;
}
}