Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trial

Rodrigo Muñoz
Courses Plus Student 20,171 PointsShould I use Regexp to turn a youtube link into an embed one?
I need to convert this:
https://www.youtube.com/watch?v=X3iFhLdWjqc
into this:
https://www.youtube.com/embed/X3iFhLdWjqc
Should I use Regexp or is there any Flask method to convert the urls?
3 Answers

Chris Freeman
Treehouse Moderator 68,468 PointsAre you looking in use this in the route? There is Philip Southam's StackOverflow answer on using regex in a route. Copied below:
from flask import Flask
from werkzeug.routing import BaseConverter
app = Flask(__name__)
class RegexConverter(BaseConverter):
def __init__(self, url_map, *items):
super(RegexConverter, self).__init__(url_map)
self.regex = items[0]
app.url_map.converters['regex'] = RegexConverter
@app.route('/<regex("[abcABC0-9]{4,6}"):uid>-<slug>/')
def example(uid, slug):
return "uid: %s, slug: %s" % (uid, slug)
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
Otherwise, for general use, you could do:
string = "https://www.youtube.com/watch?v=X3iFhLdWjqc"
re.sub('/watch\?v=', '/embed/', string)
'https://www.youtube.com/embed/X3iFhLdWjqc'

ellie adam
26,377 PointsHi, Are you using iframe? Try this it will help you.
def youtube_embed(youtube_url)
if youtube_url[/youtu\.be\/([^\?]*)/]
youtube_id = $1
else
# Regex from # http://stackoverflow.com/questions/3452546/javascript-regex-how-to-get-youtube-video-id-from-url/4811367#4811367
youtube_url[/^.*((v\/)|(embed\/)|(watch\?))\??v?=?([^\&\?]*).*/]
youtube_id = $1
end
%Q{<iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/#{ youtube_id }" frameborder="0" allowfullscreen></iframe>}
end
youtube_embed('youtu.be/jJrzIdDUfT4')
# => <iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/jJrzIdDUfT4" frameborder="0" allowfullscreen></iframe>

ellie adam
26,377 Pointsyou welcome!
Rodrigo Muñoz
Courses Plus Student 20,171 PointsRodrigo Muñoz
Courses Plus Student 20,171 PointsThank to you both!