> Tous les forums > Forum Multimédia
 pas d'ouverture du flux resau you tube avec VLCSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
papoune48
  Posté le 05/02/2022 @ 18:52 
Aller en bas de la page 
Petit astucien
Publicité
pcastuces
 Posté le 06/02/2022 à 21:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Equipe PC Astuces
Bonjour,

Le sujet a été déplacé par la modération dans le forum Multimédia qui semble plus adéquat.

Vous pouvez continuer la discussion à la suite de ce message.

A bientôt.
Scapo
 Posté le 06/02/2022 à 22:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Slt,

c'est quoi ce lien que tu as posté ?

papoune48
 Posté le 07/02/2022 à 11:03 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour ce n'est pas un lien c'est le message d'erreur que j'ai copié

beorcs
 Posté le 08/02/2022 à 13:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Le message d'erreur :

papoune48
 Posté le 08/02/2022 à 18:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour

je ne comprends pas pourquoi il s'agit des varietes Françaises je peux le lire sans probleme avec chrome

https://www.youtube.com/watch?v=N0V9EXegmCM

Musique Francaise 2021 ♫ Playlist Chanson Francaise 2021
hido
 Posté le 08/02/2022 à 19:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

papoune48 a écrit :

Bonjour

je ne comprends pas pourquoi il s'agit des varietes Françaises je peux le lire sans probleme avec chrome

https://www.youtube.com/watch?v=N0V9EXegmCM

Musique Francaise 2021 ♫ Playlist Chanson Francaise 2021

Bonjour

Ça ne marche pas non plus chez moi avec VLC

Scapo
 Posté le 08/02/2022 à 19:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien
~~~~~~
 Posté le 09/02/2022 à 06:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Salut tlm,

Merci j'ai change le fichier !

papoune48
 Posté le 09/02/2022 à 11:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

bonjour

Merci Scapo mais je l'ai dejà fait comme indique dans mon premier message et j'ai toujours le message d'error

Scapo
 Posté le 09/02/2022 à 18:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Re,

et ce .lua tu l'as bien renommé en .luac ? et en ayant supprimé l'ancien luac au cas où?



Modifié par Scapo le 09/02/2022 18:55
papoune48
 Posté le 10/02/2022 à 11:42 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Re

je l'ai bien renommé en luac et supprimé l'ancien ci dessous la copie du fichier control A puis control C copie dans le bloc note puis enregistrement et remplacement du fichier C:\Program Files\VideoLAN\VLC\lua\playlist

--[[

$Id$

Copyright © 2007-2020 the VideoLAN team

This program is free software; you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation; either version 2 of the License, or

(at your option) any later version.

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License

along with this program; if not, write to the Free Software

Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.

--]]

-- Helper function to get a parameter's value in a URL

function get_url_param( url, name )

local _, _, res = string.find( url, "[&?]"..name.."=([^&]*)" )

return res

end

-- Helper function to copy a parameter when building a new URL

function copy_url_param( url, name )

local value = get_url_param( url, name )

return ( value and "&"..name.."="..value or "" ) -- Ternary operator

end

function get_arturl()

local iurl = get_url_param( vlc.path, "iurl" )

if iurl then

return iurl

end

local video_id = get_url_param( vlc.path, "v" )

if not video_id then

return nil

end

return vlc.access.."://img.youtube.com/vi/"..video_id.."/default.jpg"

end

-- Pick the most suited format available

function get_fmt( fmt_list )

local prefres = vlc.var.inherit(nil, "preferred-resolution")

if prefres < 0 then

return nil

end

local fmt = nil

for itag,height in string.gmatch( fmt_list, "(%d+)/%d+x(%d+)[^,]*" ) do

-- Apparently formats are listed in quality

-- order, so we take the first one that works,

-- or fallback to the lowest quality

fmt = itag

if tonumber(height) <= prefres then

break

end

end

return fmt

end

-- Helper emulating vlc.readline() to work around its failure on

-- very long lines (see #24957)

function read_long_line()

local eol

local pos = 0

local len = 32768

repeat

len = len * 2

local line = vlc.peek( len )

if not line then return nil end

eol = string.find( line, "\n", pos + 1 )

pos = len

until eol or len >= 1024 * 1024 -- No EOF detection, loop until limit

return vlc.read( eol or len )

end

-- Buffering iterator to parse through the HTTP stream several times

-- without making several HTTP requests

function buf_iter( s )

s.i = s.i + 1

local line = s.lines[s.i]

if not line then

-- Put back together statements split across several lines,

-- otherwise we won't be able to parse them

repeat

local l = s.stream:readline()

if not l then break end

line = line and line..l or l -- Ternary operator

until string.match( line, "};$" )

if line then

s.lines[s.i] = line

end

end

return line

end

-- Helper to search and extract code from javascript stream

function js_extract( js, pattern )

js.i = 0 -- Reset to beginning

for line in buf_iter, js do

local ex = string.match( line, pattern )

if ex then

return ex

end

end

vlc.msg.err( "Couldn't process youtube video URL, please check for updates to this script" )

return nil

end

-- Descramble the URL signature using the javascript code that does that

-- in the web page

function js_descramble( sig, js_url )

-- Fetch javascript code

local js = { stream = vlc.stream( js_url ), lines = {}, i = 0 }

if not js.stream then

vlc.msg.err( "Couldn't process youtube video URL, please check for updates to this script" )

return sig

end

-- Look for the descrambler function's name

-- if(k.s){var l=k.sp,m=pt(decodeURIComponent(k.s));f.set(l,encodeURIComponent(m))}

-- k.s (from stream map field "s") holds the input scrambled signature

-- k.sp (from stream map field "sp") holds a parameter name (normally

-- "signature" or "sig") to set with the output, descrambled signature

local descrambler = js_extract( js, "[=%(,&|](..)%(decodeURIComponent%(.%.s%)%)" )

if not descrambler then

vlc.msg.dbg( "Couldn't extract youtube video URL signature descrambling function name" )

return sig

end

-- Fetch the code of the descrambler function

-- Go=function(a){a=a.split("");Fo.sH(a,2);Fo.TU(a,28);Fo.TU(a,44);Fo.TU(a,26);Fo.TU(a,40);Fo.TU(a,64);Fo.TR(a,26);Fo.sH(a,1);return a.join("")};

local rules = js_extract( js, "^"..descrambler.."=function%([^)]*%){(.-)};" )

if not rules then

vlc.msg.dbg( "Couldn't extract youtube video URL signature descrambling rules" )

return sig

end

-- Get the name of the helper object providing transformation definitions

local helper = string.match( rules, ";(..)%...%(" )

if not helper then

vlc.msg.dbg( "Couldn't extract youtube video URL signature transformation helper name" )

vlc.msg.err( "Couldn't process youtube video URL, please check for updates to this script" )

return sig

end

-- Fetch the helper object code

-- var Fo={TR:function(a){a.reverse()},TU:function(a,b){var c=a[0];a[0]=a[b%a.length];a[b]=c},sH:function(a,b){a.splice(0,b)}};

local transformations = js_extract( js, "[ ,]"..helper.."={(.-)};" )

if not transformations then

vlc.msg.dbg( "Couldn't extract youtube video URL signature transformation code" )

return sig

end

-- Parse the helper object to map available transformations

local trans = {}

for meth,code in string.gmatch( transformations, "(..):function%([^)]*%){([^}]*)}" ) do

-- a=a.reverse()

if string.match( code, "%.reverse%(" ) then

trans[meth] = "reverse"

-- a.splice(0,b)

elseif string.match( code, "%.splice%(") then

trans[meth] = "slice"

-- var c=a[0];a[0]=a[b%a.length];a[b]=c

elseif string.match( code, "var c=" ) then

trans[meth] = "swap"

else

vlc.msg.warn("Couldn't parse unknown youtube video URL signature transformation")

end

end

-- Parse descrambling rules, map them to known transformations

-- and apply them on the signature

local missing = false

for meth,idx in string.gmatch( rules, "..%.(..)%([^,]+,(%d+)%)" ) do

idx = tonumber( idx )

if trans[meth] == "reverse" then

sig = string.reverse( sig )

elseif trans[meth] == "slice" then

sig = string.sub( sig, idx + 1 )

elseif trans[meth] == "swap" then

if idx > 1 then

sig = string.gsub( sig, "^(.)("..string.rep( ".", idx - 1 )..")(.)(.*)$", "%3%2%1%4" )

elseif idx == 1 then

sig = string.gsub( sig, "^(.)(.)", "%2%1" )

end

else

vlc.msg.dbg("Couldn't apply unknown youtube video URL signature transformation")

missing = true

end

end

if missing then

vlc.msg.err( "Couldn't process youtube video URL, please check for updates to this script" )

end

return sig

end

-- Parse and assemble video stream URL

function stream_url( params, js_url )

local url = string.match( params, "url=([^&]+)" )

if not url then

return nil

end

url = vlc.strings.decode_uri( url )

-- Descramble any scrambled signature and append it to URL

local s = string.match( params, "s=([^&]+)" )

if s then

s = vlc.strings.decode_uri( s )

vlc.msg.dbg( "Found "..string.len( s ).."-character scrambled signature for youtube video URL, attempting to descramble... " )

if js_url then

s = js_descramble( s, js_url )

else

vlc.msg.err( "Couldn't process youtube video URL, please check for updates to this script" )

end

local sp = string.match( params, "sp=([^&]+)" )

if not sp then

vlc.msg.warn( "Couldn't extract signature parameters for youtube video URL, guessing" )

sp = "signature"

end

url = url.."&"..sp.."="..vlc.strings.encode_uri_component( s )

end

return url

end

-- Parse and pick our video stream URL (classic parameters)

function pick_url( url_map, fmt, js_url )

for stream in string.gmatch( url_map, "[^,]+" ) do

local itag = string.match( stream, "itag=(%d+)" )

if not fmt or not itag or tonumber( itag ) == tonumber( fmt ) then

return stream_url( stream, js_url )

end

end

return nil

end

-- Parse and pick our video stream URL (new-style parameters)

function pick_stream( stream_map, js_url )

local pick = nil

local fmt = tonumber( get_url_param( vlc.path, "fmt" ) )

if fmt then

-- Legacy match from URL parameter

for stream in string.gmatch( stream_map, '{(.-)}' ) do

local itag = tonumber( string.match( stream, '"itag":(%d+)' ) )

if fmt == itag then

pick = stream

break

end

end

else

-- Compare the different available formats listed with our

-- quality targets

local prefres = vlc.var.inherit( nil, "preferred-resolution" )

local bestres = nil

for stream in string.gmatch( stream_map, '{(.-)}' ) do

local height = tonumber( string.match( stream, '"height":(%d+)' ) )

-- Better than nothing

if not pick or ( height and ( not bestres

-- Better quality within limits

or ( ( prefres < 0 or height <= prefres ) and height > bestres )

-- Lower quality more suited to limits

or ( prefres > -1 and bestres > prefres and height < bestres )

) ) then

bestres = height

pick = stream

end

end

end

if not pick then

return nil

end

-- Either the "url" or the "signatureCipher" parameter is present,

-- depending on whether the URL signature is scrambled.

local cipher = string.match( pick, '"signatureCipher":"(.-)"' )

or string.match( pick, '"[a-zA-Z]*[Cc]ipher":"(.-)"' )

if cipher then

-- Scrambled signature: some assembly required

local url = stream_url( cipher, js_url )

if url then

return url

end

end

-- Unscrambled signature, already included in ready-to-use URL

return string.match( pick, '"url":"(.-)"' )

end

-- Probe function.

function probe()

return ( ( vlc.access == "http" or vlc.access == "https" ) and (

((

string.match( vlc.path, "^www%.youtube%.com/" )

or string.match( vlc.path, "^music%.youtube%.com/" )

or string.match( vlc.path, "^gaming%.youtube%.com/" ) -- out of use

) and (

string.match( vlc.path, "/watch%?" ) -- the html page

or string.match( vlc.path, "/live$" ) -- user live stream html page

or string.match( vlc.path, "/live%?" ) -- user live stream html page

or string.match( vlc.path, "/get_video_info%?" ) -- info API

or string.match( vlc.path, "/v/" ) -- video in swf player

or string.match( vlc.path, "/embed/" ) -- embedded player iframe

)) or

string.match( vlc.path, "^consent%.youtube%.com/" )

) )

end

-- Parse function.

function parse()

if string.match( vlc.path, "^consent%.youtube%.com/" ) then

-- Cookie consent redirection

-- Location: www.youtube.com%2Fwatch%3Fv%3DXXXXXXXXXXX&gl=FR&m=0&pc=yt&uxe=23983172&hl=fr&src=1" target="_blank">https://consent.youtube.com/m?continue=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DXXXXXXXXXXX&gl=FR&m=0&pc=yt&uxe=23983172&hl=fr&src=1

-- Set-Cookie: CONSENT=PENDING+355; expires=Fri, 01-Jan-2038 00:00:00 GMT; path=/; domain=.youtube.com

local url = get_url_param( vlc.path, "continue" )

if not url then

vlc.msg.err( "Couldn't handle YouTube cookie consent redirection, please check for updates to this script or try disabling HTTP cookie forwarding" )

return { }

end

return { { path = vlc.strings.decode_uri( url ), options = { ":no-http-forward-cookies" } } }

elseif not string.match( vlc.path, "^www%.youtube%.com/" ) then

-- Skin subdomain

return { { path = vlc.access.."://"..string.gsub( vlc.path, "^([^/]*)/", "www.youtube.com/" ) } }

elseif string.match( vlc.path, "/watch%?" )

or string.match( vlc.path, "/live$" )

or string.match( vlc.path, "/live%?" )

then -- This is the HTML page's URL

local js_url

-- fmt is the format of the video

-- (cf. http://en.wikipedia.org/wiki/YouTube#Quality_and_formats)

fmt = get_url_param( vlc.path, "fmt" )

while true do

-- The new HTML code layout has fewer and longer lines; always

-- use the long line workaround until we get more visibility.

local line = new_layout and read_long_line() or vlc.readline()

if not line then break end

-- The next line is the major configuration line that we need.

-- It is very long so we need this workaround (see #24957).

if string.match( line, '^ *<div id="player%-api">' ) then

line = read_long_line()

if not line then break end

end

if not title then

local meta = string.match( line, '<meta property="og:title"( .-)>' )

if meta then

title = string.match( meta, ' content="(.-)"' )

if title then

title = vlc.strings.resolve_xml_special_chars( title )

end

end

end

if not description then

-- FIXME: there is another version of this available,

-- without the double JSON string encoding, but we're

-- unlikely to access it due to #24957

description = string.match( line, '\\"shortDescription\\":\\"(.-[^\\])\\"')

if description then

-- FIXME: do this properly (see #24958)

description = string.gsub( description, '\\(["\\/])', '%1' )

else

description = string.match( line, '"shortDescription":"(.-[^\\])"')

end

if description then

if string.match( description, '^"' ) then

description = ""

end

-- FIXME: do this properly (see #24958)

-- This way of unescaping is technically wrong

-- so as little as possible of it should be done

description = string.gsub( description, '\\(["\\/])', '%1' )

description = string.gsub( description, '\\n', '\n' )

description = string.gsub( description, '\\r', '\r' )

description = string.gsub( description, "\\u0026", "&" )

end

end

if not arturl then

local meta = string.match( line, '<meta property="og:image"( .-)>' )

if meta then

arturl = string.match( meta, ' content="(.-)"' )

if arturl then

arturl = vlc.strings.resolve_xml_special_chars( arturl )

end

end

end

if not artist then

artist = string.match(line, '\\"author\\":\\"(.-)\\"')

if artist then

-- FIXME: do this properly (see #24958)

artist = string.gsub( artist, '\\(["\\/])', '%1' )

else

artist = string.match( line, '"author":"(.-)"' )

end

if artist then

-- FIXME: do this properly (see #24958)

artist = string.gsub( artist, "\\u0026", "&" )

end

end

if not new_layout then

if string.match( line, '<script nonce="' ) then

vlc.msg.dbg( "Detected new YouTube HTML code layout" )

new_layout = true

end

end

-- We need this when parsing the main stream configuration;

-- it can indeed be found on that same line (among others).

if not js_url then

js_url = string.match( line, '"jsUrl":"(.-)"' )

or string.match( line, "\"js\": *\"(.-)\"" )

if js_url then

js_url = string.gsub( js_url, "\\/", "/" )

-- Resolve URL

if string.match( js_url, "^/[^/]" ) then

local authority = string.match( vlc.path, "^([^/]*)/" )

js_url = "//"..authority..js_url

end

js_url = string.gsub( js_url, "^//", vlc.access.."://" )

end

end

-- JSON parameters, also formerly known as "swfConfig",

-- "SWF_ARGS", "swfArgs", "PLAYER_CONFIG", "playerConfig" ...

if string.match( line, "ytplayer%.config" ) then

-- Classic parameters - out of use since early 2020

if not fmt then

fmt_list = string.match( line, "\"fmt_list\": *\"(.-)\"" )

if fmt_list then

fmt_list = string.gsub( fmt_list, "\\/", "/" )

fmt = get_fmt( fmt_list )

end

end

url_map = string.match( line, "\"url_encoded_fmt_stream_map\": *\"(.-)\"" )

if url_map then

vlc.msg.dbg( "Found classic parameters for youtube video stream, parsing..." )

-- FIXME: do this properly (see #24958)

url_map = string.gsub( url_map, "\\u0026", "&" )

path = pick_url( url_map, fmt, js_url )

end

-- New-style parameters

if not path then

local stream_map = string.match( line, '\\"formats\\":%[(.-)%]' )

if stream_map then

-- FIXME: do this properly (see #24958)

stream_map = string.gsub( stream_map, '\\(["\\/])', '%1' )

else

stream_map = string.match( line, '"formats":%[(.-)%]' )

end

if stream_map then

vlc.msg.dbg( "Found new-style parameters for youtube video stream, parsing..." )

-- FIXME: do this properly (see #24958)

stream_map = string.gsub( stream_map, "\\u0026", "&" )

path = pick_stream( stream_map, js_url )

end

end

if not path then

-- If this is a live stream, the URL map will be empty

-- and we get the URL from this field instead

local hlsvp = string.match( line, '\\"hlsManifestUrl\\": *\\"(.-)\\"' )

or string.match( line, '"hlsManifestUrl":"(.-)"' )

if hlsvp then

hlsvp = string.gsub( hlsvp, "\\/", "/" )

path = hlsvp

end

end

end

end

if not path then

local video_id = get_url_param( vlc.path, "v" )

if video_id then

-- Passing no "el" parameter to /get_video_info seems to

-- let it default to "embedded", and both known values

-- of "embedded" and "detailpage" have historically been

-- wrong and failed for various restricted videos.

path = vlc.access.."://www.youtube.com/get_video_info?video_id="..video_id..copy_url_param( vlc.path, "fmt" )

-- The YouTube API output doesn't provide the URL to the

-- javascript code necessary to descramble URL signatures,

-- without which functionality can be seriously limited.

-- #18801 prevents us from using a subrequest to the API,

-- so we forward the URL this way.

if js_url then

path = path.."&jsurl="..vlc.strings.encode_uri_component( js_url )

end

vlc.msg.warn( "Couldn't extract video URL, falling back to alternate youtube API" )

end

end

if not path then

vlc.msg.err( "Couldn't extract youtube video URL, please check for updates to this script" )

return { }

end

if not arturl then

arturl = get_arturl()

end

return { { path = path; name = title; description = description; artist = artist; arturl = arturl } }

elseif string.match( vlc.path, "/get_video_info%?" ) then -- video info API

local line = vlc.read( 1024*1024 ) -- data is on one line only

if not line then

vlc.msg.err( "YouTube API output missing" )

return { }

end

local js_url = get_url_param( vlc.path, "jsurl" )

if js_url then

js_url= vlc.strings.decode_uri( js_url )

end

-- Classic parameters - out of use since early 2020

local fmt = get_url_param( vlc.path, "fmt" )

if not fmt then

local fmt_list = string.match( line, "&fmt_list=([^&]*)" )

if fmt_list then

fmt_list = vlc.strings.decode_uri( fmt_list )

fmt = get_fmt( fmt_list )

end

end

local url_map = string.match( line, "&url_encoded_fmt_stream_map=([^&]*)" )

if url_map then

vlc.msg.dbg( "Found classic parameters for youtube video stream, parsing..." )

url_map = vlc.strings.decode_uri( url_map )

path = pick_url( url_map, fmt, js_url )

end

-- New-style parameters

if not path then

local stream_map = string.match( line, '%%22formats%%22%%3A%%5B(.-)%%5D' )

if stream_map then

vlc.msg.dbg( "Found new-style parameters for youtube video stream, parsing..." )

stream_map = vlc.strings.decode_uri( stream_map )

-- FIXME: do this properly (see #24958)

stream_map = string.gsub( stream_map, "\\u0026", "&" )

path = pick_stream( stream_map, js_url )

end

end

if not path then

-- If this is a live stream, the URL map will be empty

-- and we get the URL from this field instead

local hlsvp = string.match( line, "%%22hlsManifestUrl%%22%%3A%%22(.-)%%22" )

if hlsvp then

hlsvp = vlc.strings.decode_uri( hlsvp )

path = hlsvp

end

end

if not path and get_url_param( vlc.path, "el" ) ~= "detailpage" then

-- Retry with the other known value for the "el" parameter;

-- either value has historically been wrong and failed for

-- some videos but not others.

local video_id = get_url_param( vlc.path, "video_id" )

if video_id then

path = vlc.access.."://www.youtube.com/get_video_info?video_id="..video_id.."&el=detailpage"..copy_url_param( vlc.path, "fmt" )..copy_url_param( vlc.path, "jsurl" )

vlc.msg.warn( "Couldn't extract video URL, retrying with alternate YouTube API parameters" )

end

end

if not path then

vlc.msg.err( "Couldn't extract youtube video URL, please check for updates to this script" )

return { }

end

local title = string.match( line, "%%22title%%22%%3A%%22(.-)%%22" )

if title then

title = string.gsub( title, "+", " " )

title = vlc.strings.decode_uri( title )

-- FIXME: do this properly (see #24958)

title = string.gsub( title, "\\u0026", "&" )

end

-- FIXME: description gets truncated if it contains a double quote

local description = string.match( line, "%%22shortDescription%%22%%3A%%22(.-)%%22" )

if description then

description = string.gsub( description, "+", " " )

description = vlc.strings.decode_uri( description )

-- FIXME: do this properly (see #24958)

description = string.gsub( description, '\\(["\\/])', '%1' )

description = string.gsub( description, '\\n', '\n' )

description = string.gsub( description, '\\r', '\r' )

description = string.gsub( description, "\\u0026", "&" )

end

local artist = string.match( line, "%%22author%%22%%3A%%22(.-)%%22" )

if artist then

artist = string.gsub( artist, "+", " " )

artist = vlc.strings.decode_uri( artist )

-- FIXME: do this properly (see #24958)

artist = string.gsub( artist, "\\u0026", "&" )

end

local arturl = string.match( line, "%%22playerMicroformatRenderer%%22%%3A%%7B%%22thumbnail%%22%%3A%%7B%%22thumbnails%%22%%3A%%5B%%7B%%22url%%22%%3A%%22(.-)%%22" )

if arturl then

arturl = vlc.strings.decode_uri( arturl )

end

return { { path = path, name = title, description = description, artist = artist, arturl = arturl } }

else -- Other supported URL formats

local video_id = string.match( vlc.path, "/[^/]+/([^?]*)" )

if not video_id then

vlc.msg.err( "Couldn't extract youtube video URL" )

return { }

end

return { { path = vlc.access.."://www.youtube.com/watch?v="..video_id..copy_url_param( vlc.path, "fmt" ) } }

end

end

Scapo
 Posté le 10/02/2022 à 13:08 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Re,

au cas où je vois dans ton entête : Copyright © 2007-2020

Ici , une
2007-2022 (une version qui date de 4 jours)
en bas de la liste : https://github.com/videolan/vlc/tree/master/share/lua/playlist
en faisant dessus un clic droit >> enregistrer sous cela devrait le faire ( toujours en changeant lua en luac)



Modifié par Scapo le 10/02/2022 13:12
~~~~~~
 Posté le 10/02/2022 à 15:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Salut tlm,

papoune48
 Posté le 10/02/2022 à 19:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci Scapo de ton aide mais j'ai un souci en bas de la liste la date est de 5ans

peux tu m'expliquer pour le lien

papoune48
 Posté le 10/02/2022 à 20:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

je crois avoir reussi mais cela ne marche pas avec toutes les url avec https://www.youtube.com/watch?v=fUYx6qiHKNM cela ne fonctionne pas

le fichier youtube.luac fait 47k mais pas 42k comme le montre petit astucien

j'ai copié lé lien ci dessous

https://github.com/videolan/vlc/blob/master/share/lua/playlist/youtube.lua

gepsyc
 Posté le 11/02/2022 à 11:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour papoune48,

Pour les vidéos ou films, il arrive que certaines ne peuvent être enregistrées en prenant le flux vidéo de VLC. Sinon cette méthode fonctionne bien, j'enregistre tous mes films Youtube avec VLC.

Pour ce qui est de l'audio, il y a plus simple.

1) Sélectionne l'URL de la playlist ex: https://www.youtube.com/watch?v=d954yj50cOE&t=211s

2) Vas à cette adresse : https://mp3-download.yt/fr/

3) Une fois sur cette page, colle l'URL de la Playlist comme ci-dessous et clique sur Convertir

Scapo
 Posté le 11/02/2022 à 14:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien
papoune48 a écrit :

Merci Scapo de ton aide mais j'ai un souci en bas de la liste la date est de 5ans

peux tu m'expliquer pour le lien

Slt,

Pas 5 ans le youtube mais 5 jours... C'est le zapic qui date de 5 ans...



Modifié par Scapo le 11/02/2022 14:23
papoune48
 Posté le 11/02/2022 à 14:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour gepsyc

merci pour ta methode d'enregistrement audio

bonne journée

papoune48
 Posté le 11/02/2022 à 14:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci a toi Scapo et bonne journée

comment rester à jour des modif du fichier youtube.luac

Scapo
 Posté le 11/02/2022 à 16:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Sauf à garder dans ses favoris un lien vers ce site et ce fichier et y jeter un œil de temps à autre, je ne vois pas...

papoune48
 Posté le 11/02/2022 à 19:01 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir Scapo

merci pour ta derniere info comment fait on pour cloturer le post

Scapo
 Posté le 11/02/2022 à 19:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Rien en fait Papoune, tu l'as passé en résolu il y a 3 minutes , rien de plus à faire.
Très bonne soirée.



Modifié par Scapo le 11/02/2022 19:05
~~~~~~
 Posté le 13/02/2022 à 10:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Salut tlm,



Modifié par ~~~~~~ le 13/02/2022 10:43
Publicité
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Pistolet à cartouche mécanique Wolfcraft MG 200 Ergo à 9,79 €
9,79 € 14,99 € -35% @Amazon
Batterie Bosch Professional 18V System 5Ah à 65,05 € livrée
65,05 € 85 € -23% @Amazon Allemagne
Jusqu'à -22% de réduction sur une sélection de produits Bosch Professional
-22% @Amazon
Caméra de surveillance TP-Link Tapo C200 à 24,99 €
24,99 € 39 € -36% @Amazon
Kit de 16 Go (2x8 Go) de mémoire DDR4 Corsair Vengeance RGB RS 3200 MHz à 69,14 € livré
69,14 € 80 € -14% @Amazon Allemagne
Kit de 32 Go (2 x 16 Go) de mémoire DDR4 Corsair Vengeance LPX 3600 MHz CL18 à 95,40 €
95,40 € 125 € -24% @Amazon Allemagne
Portable Acer Aspire (14 pouces, Pentium Silver N6000, 8 Go RAM, SSD 128 Go, Windows 11) à 299,99 €
299,99 € 399 € -25% @Amazon
SSD externe NVMe Crucial X8 2 To à 134,59 €
134,59 € 185 € -27% @Amazon
LEGO 21327 Ideas La machine à écrire vintage à 206,96 € livrée
206,96 € 245 € -16% @Amazon Espagne
Carte mémoire microSDXC SanDisk 256 Go pour Nintendo Switch à 29,72 € livrée
29,72 € 45 € -34% @Amazon Espagne

Sujets relatifs
reduction de poids vidéo avec VLC , ne fonctionne pas
Je ne parviens pas à lire mon DVD ....avec VLC
FICHIER. DASH: LECTURE AVEC VLC PAS DE SON
Pas d'accès TV avec VLC
Pas de son sur une vidéo avec VLC
Pas de son avec You Tube
Extraction du son d'une vidéo (avec VLC)
Flux audio avec VLC
VLC n'ouvre pas avec clic sur fichier
Comment utiliser VLC 1.0.2 avec le flux réseau ?
Plus de sujets relatifs à pas d''ouverture du flux resau you tube avec VLC
 > Tous les forums > Forum Multimédia