use strict;
use warnings;
use Parse::BBCode;
my $p = Parse::BBCode->new({
tags => {
youtube => {
code => sub {
my ($parser, $attr, $content) = @_;
my $id = $$content;
if ($id =~ m{^http://www\.youtube\.(?:de|com)/(?:(?:watch)?\?v=|embed/)(\S*)$}) {
$id = $1;
}
my $escaped = Parse::BBCode::escape_html($id);
return qq{};
},
parse => 0,
},
},
});
my $bbcode = do { local $/; };
my $html = $p->render($bbcode);
print $html;
__DATA__
[youtube][/youtube]
[youtube]1234_Abc[/youtube]
[youtube]http://www.youtube.de/?v=1234_Abc[/youtube]
[youtube]http://www.youtube.de/embed/1234_Abc[/youtube]
[youtube]foo bar bam 123[/youtube]
[youtube]http://www.youtube.com/watch?v=Hg8Fa_EUQqY[/youtube]