HydrogenAudio

Hosted Forums => foobar2000 => 3rd Party Plugins - (fb2k) => Topic started by: jxxxxxx on 2011-12-23 02:23:57

Title: footube—finds YouTube videos via fb2k, also integrates w/WSH Panel Mod
Post by: jxxxxxx on 2011-12-23 02:23:57
Look what I found today

fooTube (http://pnnceo.blog.fc2.com/blog-entry-94.html)
Together with foo_run (http://www.hydrogenaudio.org/forums/index.php?showtopic=45223) it's exactly what you're looking for


Maybe I was not exactly enough inn my starting poast.
But what I was meaning is that I want to search in foobar and get a list of hits.
Clicking on it will add it to the playlist or starts playing the song within foobar.
Not in an external Window.
Title: footube—finds YouTube videos via fb2k, also integrates w/WSH Panel Mod
Post by: Emerelle on 2011-12-23 04:04:38
Well that is as good as it gets. Foobar plays flv's with the right plugin, but only audio and you cannot search from there.
I'm happy just not having to use the browser to search for files in YT.
Title: footube—finds YouTube videos via fb2k, also integrates w/WSH Panel Mod
Post by: GiveMe9 on 2012-01-27 00:31:28
thank you for recomending my tool Emerelle.
Quote
Clicking on it will add it to the playlist or starts playing the song within foobar.
Not in an external Window.

jPatton then i recomend you This (http://pnnceo.blog.fc2.com/blog-entry-95.html)
At this introduction page, using this tool with foo_run
but you can use by WSH Panel mod or something like that

URL-Encordeding is needed to search Video on youtube.
[blockquote]
ex.if you want to search "apple cooking",
youtube URL with Search query have to be "http://www.youtube.com/results?search_query=apple+cooking"
you need to change " "(space) to "+"
[/blockquote]

For like me Japanese user and other multibyte-character language users,
URL-Encoding is big problem, so i made a tool to handle that.
[blockquote]
ex.if i want to search "林檎"(林檎 means apple),
youtube URL with Search query have to be "http://www.youtube.com/results?search_query=%E6%9E%97%E6%AA%8E"
i need to change "林檎" to "%E6%9E%97%E6%AA%8E"
[/blockquote]

Using this tool you dont have to care about it.
Title: footube—finds YouTube videos via fb2k, also integrates w/WSH Panel Mod
Post by: GiveMe9 on 2012-02-02 09:26:20
Quote
Not in an external Window.


I made footube version3.00beta (http://pnnceo.blog.fc2.com/blog-entry-213.html) note open external window.

This is BETA version and may have some bugs.
.NET FrameWork4 needed
WSH Panel Mod needed

(http://img513.imageshack.us/img513/8692/59509455.png)
(http://img408.imageshack.us/img408/7607/62983604.png)
Title: footube—finds YouTube videos via fb2k, also integrates w/WSH Panel Mod
Post by: GiveMe9 on 2012-02-04 06:49:15
I release footube which is work with WSH Panel Mod
Please try it!
Get it from here(English & Japanese explanation post) (http://pnnceo.blog.fc2.com/blog-entry-219.html)

(http://img809.imageshack.us/img809/1489/image1438.png)

(http://img513.imageshack.us/img513/8692/59509455.png)

(http://img267.imageshack.us/img267/2572/62229596.png)


Introduction Viedo on Youtube (http://www.youtube.com/watch?v=q-1rS377aSY)


Using WSH stdin/out and C# Form aplication's console.write/read,
i can made external aplication strongly coordinate operation with foobar2000.

Code: [Select]
var WshShell = new ActiveXObject("WScript.Shell");
var exe = "footube.exe";
var delay = 5000;
var oExec = WshShell.Exec(exe+" "+window.ID+" "+delay);
var timer = window.CreateTimerInterval(delay+100);
var stat = 1;
var pipe = 0;

var mes_templ  = "###############################\n"
    mes_templ += "Message From fooTubeScript Host\n"
    mes_templ += "###############################\n";
var bar_templ  = "-------------------------------\n"

function on_playback_new_track(metadb){
    if (stat == 1 && pipe == 1)
    {
        try
        {
            oExec.StdIn.WriteLine(fb.TitleFormat("%title%").Eval(true));
        }
        catch(e)
        {
            fb.trace(mes_templ+"pipe had been closed");
            stat = 0;
            pipe = 0;
        }
    }
}

function on_timer(timer_id){
    window.KillTimer(timer);
    var dt = new Date();
    var start = dt.getMilliseconds();
    fb.trace(mes_templ+"initialization pipe conection...");
   
    if (stat)
    {
        dt = new Date();
        fb.trace("Send SYN to footube.exe");
        oExec.StdIn.WriteLine("SYN");
        if(oExec.StdOut.ReadLine() == "SYN")
        {
            fb.trace("Recieve SYN from footube.exe\nSend ACK to footube.exe");
            oExec.StdIn.WriteLine("ACK");
            fb.trace("Recive TEST Message from footube.exe");
            pipe = 1;
            fb.trace("\""+oExec.StdOut.ReadLine()+"\"");
            var dt = new Date();
            var end = dt.getMilliseconds();
            fb.trace((end-start)+"ms took to pipe conection establishment\n"+bar_templ);
        }
        else
        {
            fb.trace("Error : Cannot Recieve SYN from footube.exe\n"+bar_templ);
            stat = 0;
            pipe = 0;
        }
    }
}


(http://img28.imageshack.us/img28/952/foobarunderwater.png)
Have a nice music life with foobar2000, and many thanks to WSH Panel Mod and foobar2000 author!
Title: footube—finds YouTube videos via fb2k, also integrates w/WSH Panel Mod
Post by: GiveMe9 on 2012-02-15 23:28:20
2012-02-16
NEW script for footube
I wonder when i listen to net-radio and music changed, on_playback_new_track is not called.
so using regexp, if RAW PATH include "http://",make timer and check if music has changed.
and other changes in detail.

learn detail (http://pnnceo.blog.fc2.com/blog-entry-230.html)

Code: [Select]
var WshShell = new ActiveXObject("WScript.Shell");
var exe = "footube.exe";
var delay = 3000;
var oExec = WshShell.Exec(exe+" "+window.ID+" "+delay);
var timer = window.CreateTimerInterval(delay+3000);

var stat = true;
var pipe = false;

var net_radio = false;
var net_radio_tit = "";

var cmd2pipe = "";

var mes_templ  = "###############################\n";
    mes_templ += "Message From fooTubeScript Host\n";
    mes_templ += "###############################\n";
var bar_templ  = "-------------------------------\n";

//---------------------------------------------------

function sendMes2pipe(cmd2pipe)
{
    try
    {
        oExec.StdIn.WriteLine(cmd2pipe);
    }
    catch(e)
    {
        fb.trace(mes_templ+"pipe had been closed");
        killAll();
    }
}

function killAll()
{
    stat = false;
    pipe = false;
    net_radio = false;
    window.KillTimer(timer);
}

function checkBeforSend()
{
    if (stat && pipe)
    {
        window.KillTimer(timer);
        sendMes2pipe(fb.TitleFormat("%title%").Eval(true));
       
        var url = new RegExp("http://", "i");
        if(fb.TitleFormat("%_path_raw%").Eval(true).match(url))
        {
            net_radio = true;
            net_radio_tit = fb.TitleFormat("%title%").Eval(true);
            timer = window.CreateTimerInterval(6000);
        }
        else
        {
            net_radio = false;
        }
    }
}

//---------------------------------------------------

function on_playback_new_track(metadb){
    checkBeforSend();
}

function on_timer(timer_id){
    if (net_radio)
    {
        if (net_radio_tit != fb.TitleFormat("%title%").Eval(true))
        {
            net_radio_tit = fb.TitleFormat("%title%").Eval(true);
            sendMes2pipe(net_radio_tit);
        }
    }
    else if (stat && pipe == false)
    {
        window.KillTimer(timer);
        var dt = new Date();
        var start = dt.getMilliseconds();
        fb.trace(mes_templ+"initialization pipe conection...");
        dt = new Date();
        fb.trace("Send SYN to footube.exe");
        oExec.StdIn.WriteLine("SYN");
        if(oExec.StdOut.ReadLine() == "SYN")
        {
            fb.trace("Recieve SYN from footube.exe\nSend ACK to footube.exe");
            oExec.StdIn.WriteLine("ACK");
            fb.trace("Recive TEST Message from footube.exe");
            pipe = true;
            fb.trace("\""+oExec.StdOut.ReadLine()+"\"");
            var dt = new Date();
            var end = dt.getMilliseconds();
            if ((end - start) <= 0)
            {
                fb.trace((end+1000-start)+"ms took to pipe conection establishment\n"+bar_templ);
            }
            else
            {
                fb.trace((end-start)+"ms took to pipe conection establishment\n"+bar_templ);
            }
            checkBeforSend();
        }
        else
        {
            fb.trace("Error : Cannot Recieve SYN from footube.exe\n"+bar_templ);
            killAll();
        }
    }
}

and I am a student so there are many other things to do.
so I make footube open sourced.please modify it by yourself
footube version3.6 with c# code (http://pnnceo.blog.fc2.com/blog-entry-239.html)
Title: footube—finds YouTube videos via fb2k, also integrates w/WSH Panel Mod
Post by: mire777 on 2013-08-03 12:20:36
Using WSH stdin/out and C# Form aplication's console.write/read,
i can made external aplication strongly coordinate operation with foobar2000.



working link for footube: https://skydrive.live.com/?cid=1984874fe7d5...AGeAqFbqPPpnMm4 (https://skydrive.live.com/?cid=1984874fe7d57ae7&id=1984874FE7D57AE7!140&authkey=!AGeAqFbqPPpnMm4)


GiveMe9 ,can you make this for opera browser?
Something that will put opera aplication in foobar?
Title: footube—finds YouTube videos via fb2k, also integrates w/WSH Panel Mod
Post by: tim687 on 2015-07-17 15:27:10
Can somebody post a nice tut about this component?
I think it works great, when it works.

I get an xml error and footube crashes (version 3.05 stable)
Title: footube—finds YouTube videos via fb2k, also integrates w/WSH Panel Mod
Post by: samithaj on 2015-07-17 16:46:09
Can somebody post a nice tut about this component?
I think it works great, when it works.

I get an xml error and footube crashes (version 3.05 stable)

This is old ,don't think it'll work but there is better component for this now:
click (http://www.hydrogenaud.io/forums/index.php?showtopic=104379)

You may wanna look into these too 

Foobar Youtube Radio (http://www.hydrogenaud.io/forums/index.php?showtopic=105108)

Youtube Track Manager (http://www.hydrogenaud.io/forums/index.php?showtopic=105522)