mirror of
https://onedev.site.tesses.net/tytd2025
synced 2026-02-09 01:55:46 +00:00
87 lines
3.2 KiB
Plaintext
87 lines
3.2 KiB
Plaintext
func TYTD.GetVideoId(v)
|
|
{
|
|
func IsValidId(_v)
|
|
{
|
|
if(_v.Count != 11) return false;
|
|
each(var item : _v)
|
|
{
|
|
if(!(item.IsLetter() || item.IsDigit() || item == '-' || item == '_')) return false;
|
|
}
|
|
return true;
|
|
}
|
|
if(TypeOf(v) != "String") return null;
|
|
if(IsValidId(v)) return v;
|
|
each(var __re : ["youtube\\..+?/watch.*?v=(.*?)(?:&|/|$)","youtu\\.be/(.*?)(?:\\?|&|/|$)","youtube\\..+?/embed/(.*?)(?:\\?|&|/|$)","youtube\\..+?/shorts/(.*?)(?:\\?|&|/|$)","youtube\\..+?/live/(.*?)(?:\\?|&|/|$)"])
|
|
{
|
|
var __r = new Regex(__re);
|
|
var __s = __r.Search(v);
|
|
if(__s.Count == 2)
|
|
{
|
|
__r=__s[1].Text;
|
|
if(IsValidId(__r))
|
|
{
|
|
return __r;
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
|
|
}
|
|
func TYTD.GetPlaylistId(pid)
|
|
{
|
|
func IsValidId(v)
|
|
{
|
|
if(v.Count < 2) return false;
|
|
each(var item : v)
|
|
{
|
|
if(!(item.IsLetter() || item.IsDigit() || item == '-' || item == '_')) return false;
|
|
}
|
|
return true;
|
|
}
|
|
if(TypeOf(pid) != "String") return null;
|
|
if(IsValidId(pid)) return pid;
|
|
each(var __re : ["youtube\\..+?/playlist.*?list=(.*?)(?:&|/|$)","youtube\\..+?/watch.*?list=(.*?)(?:&|/|$)","youtu\\.be/.*?/.*?list=(.*?)(?:&|/|$)","youtube\\..+?/embed/.*?/.*?list=(.*?)(?:&|/|$)"])
|
|
{
|
|
var __r = new Regex(__re);
|
|
var __s = __r.Search(pid);
|
|
if(__s.Count == 2)
|
|
{
|
|
__r=__s[1].Text;
|
|
if(IsValidId(__r))
|
|
{
|
|
return __r;
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
func TYTD.GetChannelId(cid)
|
|
{
|
|
func IsValidId(v)
|
|
{
|
|
if(v.Count != 24) return false;
|
|
if(!v.StartsWith("UC")) return false;
|
|
each(var item : v)
|
|
{
|
|
if(!(item.IsLetter() || item.IsDigit() || item == '-' || item == '_')) return false;
|
|
}
|
|
return true;
|
|
}
|
|
if(TypeOf(cid) != "String") return null;
|
|
if(IsValidId(cid)) return cid;
|
|
each(var __re : ["youtube\\..+?/channel/(.*?)(?:\\?|&|/|$)"])
|
|
{
|
|
var __r = new Regex(__re);
|
|
var __s = __r.Search(cid);
|
|
if(__s.Count == 2)
|
|
{
|
|
__r=__s[1].Text;
|
|
if(IsValidId(__r))
|
|
{
|
|
return __r;
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
|
|
} |