kostenloser Webspace werbefrei: lima-city


Regex für Youtube Videos

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    fabo

    fabo hat kostenlosen Webspace.

    Moin,

    ich suche ein Allheilmittel für folgende Szenarien:

    http://www.youtube.com/watch?feature=player_profilepage&v=MhPSG6W28Xo
    http://www.youtube.com/watch?v=MhPSG6W28Xo&feature=channel_video_title
    http://www.youtube.com/v/MhPSG6W28Xo

    Momentan mache ich es so:

    try {
    		ret += content.match(/youtube.com\/v\/([a-zA-Z0-9-_]*)/)[1];
    	} catch (e1) {
    		try {
    			ret += content.match(/youtube.com\/watch\?v=([a-zA-Z0-9-_]*)/)[1];
    		} catch (e2) {
    		}
    	}


    Funktioniert aber leider nur bei

    http://www.youtube.com/v/MhPSG6W28Xo
    http://www.youtube.com/watch?v=MhPSG6W28Xo

    Was ja auch logisch ist. Jemand eine Idee, wie man das am besten anstellen kann?

    EDIT:

    Habs schon :wall:

    try {
            ret += content.split('/v/')[1].split('/')[0];
        } catch (e1) {
            try {
                ret += content.split('v=')[1].split('&')[0];
            } catch (e2) {
            }
        }


    Beitrag zuletzt geändert: 8.8.2011 7:31:10 von fabo
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo fabo,

    Sag mal wie sollen das jetzt aussehen bei dier ich komm mit deiner deinen Szenario nicht klar. Was meinst du denn mit den 3 URL willst du dein gesamten kanal auf den Player anzeigen lassen oder wie stellste dir das vor.

    Ich hab jetzt nämlich mal mit den URLs und den einbettungs code, den du bei Youtube bekommst probiert. und da hab ich gemerkt das du bei den urls immer diesen codeteil verwendest

    MhPSG6W28Xo


    und da hab ich mir gedacht fügste den code doch mal rein. Und raus kam das

    <iframe width="425" height="349" src="http://www.youtube.com/embed/MhPSG6W28Xo?rel=MhPSG6W28Xo" frameborder="0" allowfullscreen></iframe>


    Ich hab gemerkt das bei den Videos bei denen weitere angezeigt werden sollten ein ?rel=0" stand und bei den anderen nicht und so hab ich jetzt das mal so versucht und es wurden dann welche von dir angezeigt.

    also so hab ichs jetzt verstanden

    mfg printboy
  4. Autor dieses Themas

    fabo

    fabo hat kostenlosen Webspace.

    Ich wollte einfach aus einem String die ID des Videos herausfiltern. Mit einem Regex komme ich aber nicht allzu weit, da es viele Formen einer Youtube URL gibt. Diese wiederrum muss ich bei Möglichkeit allesamt abdecken.

    Über die Zeit ist mein Code etwas gewachsen:

    function doYT(content) {
            var $ret = 'http://www.youtube.com/embed/';
    
            try {
                $ret += content.split('/v/')[1].split('/')[0].split('&')[0].split('"')[0].split("'")[0];
            } catch (e1) {
                try {
                    $ret += content.split('v=')[1].split('&')[0].split('/')[0].split('"')[0].split("'")[0];
                } catch (e2) {
                    try {
                        $ret += content.split('/embed/')[1].split('/')[0].split('&')[0].split('"')[0].split("'")[0];
                    } catch (e3) {
                        try {
                            $ret += content.split('/vi/')[1].split('/')[0].split('&')[0].split('"')[0].split("'")[0];
                        } catch (e4) {
                            $ret += content;
                        }
                    }
                }
            }
    
            return $ret;
        }


    Beitrag zuletzt geändert: 16.8.2011 17:14:30 von fabo
  5. Funktioniert er inzwischen und wieso willst du eigentlich aus einen String das holen, wenn du die ID ablesen kannst. Denn ich meine das, dass
    MhPSG6W28Xo
    die ID ist.
  6. christian1603

    Kostenloser Webspace von christian1603

    christian1603 hat kostenlosen Webspace.

    printboy schrieb:
    Funktioniert er inzwischen und wieso willst du eigentlich aus einen String das holen, wenn du die ID ablesen kannst. Denn ich meine das, dass
    MhPSG6W28Xo
    die ID ist.

    weil er dies für seine garantiert für seine User machen will... -.-
    Doofe frage sry...
  7. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    Sieht irgendwie schöner aus :tongue:

    function getYtId(url) {
        var id = url.match(/^https?:\/\/(www\.|)youtu(\.be|be\.com.*(v|embed))[=\/]([a-zA-Z0-9_-]*)([\&\?\/]*.*|)$/);
        if(id) return id[4];
        return false;
    }


    Hat für folgende Testfälle geklappt:
    http://www.youtube.com/watch?feature=player_profilepage&v=MhPSG6W28Xo
    https://www.youtube.com/watch?feature=player_profilepage&v=MhPSG6W28Xo
    http://youtube.com/watch?feature=player_profilepage&v=MhPSG6W28Xo
    http://www.youtube.com/watch?v=MhPSG6W28Xo&feature=channel_video_title
    http://www.youtube.com/v/MhPSG6W28Xo
    http://www.youtube.com/embed/MhPSG6W28Xo
    http://youtu.be/MhPSG6W28Xo
    http://youtube.de/MhPSG6W28Xo


    Edit: Und ja, beim letzten kommt false :-P

    Beitrag zuletzt geändert: 22.8.2011 13:28:24 von thomasba
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!