Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique.
x
Mon idée est simple: le code des pages youtube a changé.
Et le N° de ligne donné par errorInfo est le N° de ligne dans la procédure, pas dans le script, donc regsub -all {<div class="watch-view-count">} $res1 "" res1
Et la ligne précédente n'as pas pu affecter $res1, donc la regexp <div class="watch-view-count">(.+?)</div> n'a pas matché.
J'ai l'impression que tout passe en JS maintenant, du moins quand on va sur youtube avec un navigateur "normal". Je vais faire des tests avec un navigateur texte qui s'approche de ce que voit un eggdrop.
Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
Bonsoir
Cool l'API mais bon cela ne va pas donner le titre qu'un User donnera sur un salon donné ? Enfin je dis ça je pige keudale en English...
Et même en mettant en Français ça traduit pas, le vieux eggdrop a encore de beaux jours devant lui... je pense.
Merci , mais cela ne résout pas mon pb...
Quand on a la connaissance, ne pas la partager ne peux faire avancer la communauté !
{
"kind": "youtube#videoListResponse",
"etag": "uTGatY8jG3uZX5jidBIXjOSCRcA",
"items": [
{
"kind": "youtube#video",
"etag": "G2LbGaomqDBYEMe8CHMg0T9wxfA",
"id": "cl5tb4v_TQ8",
"snippet": {
"publishedAt": "2020-07-16T17:34:29Z",
"channelId": "UCQ68OPQ68nl9w6NoJMeJhvA",
"title": "Chaplin vs Trumpet and drums",
"description": "Avec @samuelklein on s'est lancé le défi de doubler cette tirade mythique, grand kiff à réaliser !",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/cl5tb4v_TQ8/default.jpg",
"width": 120,
"height": 90
},
"medium": {
"url": "https://i.ytimg.com/vi/cl5tb4v_TQ8/mqdefault.jpg",
"width": 320,
"height": 180
},
"high": {
"url": "https://i.ytimg.com/vi/cl5tb4v_TQ8/hqdefault.jpg",
"width": 480,
"height": 360
},
"standard": {
"url": "https://i.ytimg.com/vi/cl5tb4v_TQ8/sddefault.jpg",
"width": 640,
"height": 480
},
"maxres": {
"url": "https://i.ytimg.com/vi/cl5tb4v_TQ8/maxresdefault.jpg",
"width": 1280,
"height": 720
}
},
"channelTitle": "Jeremy Lecomte trumpet",
"categoryId": "23",
"liveBroadcastContent": "none",
"localized": {
"title": "Chaplin vs Trumpet and drums",
"description": "Avec @samuelklein on s'est lancé le défi de doubler cette tirade mythique, grand kiff à réaliser !"
}
},
"contentDetails": {
"duration": "PT1M20S",
"dimension": "2d",
"definition": "hd",
"caption": "false",
"licensedContent": false,
"contentRating": {},
"projection": "rectangular"
},
"statistics": {
"viewCount": "479",
"likeCount": "50",
"dislikeCount": "1",
"favoriteCount": "0",
"commentCount": "6"
}
}
],
"pageInfo": {
"totalResults": 1,
"resultsPerPage": 1
}
}
La seule petite difficulté que je vois sur ce retour, c'est la durée exprimée dans du non-standard (du moins pour moi): PT1M20S => 1'20". Si c'est pour afficher la durée, c'est simple à transformer, si c'est pour faire des calculs, il va falloir jouer avec les scanf :)
C'est très gentil mais hors de mes capacités..
Le bon vieux tcl devrait pouvoir être modifié peut être ?
sinon bah tant pis je me résignerais a le supprimer :(
Quand on a la connaissance, ne pas la partager ne peux faire avancer la communauté !
Les commentaires ne sont pas tous récents, alors que la dernière version du script l'est.
Donc: as-tu pensé à tester et te faire une idée par toi-même ? De toutes manières, tu ne risques rien à essayer vu que ton ancien script ne semble plus fonctionner et que ça ne te fais pas perdre ton ancien script.
Au pire, s'il y a un bug, on peut le corriger et transmettre les correctifs à m00nie.
Je viens de regarder au plus près, il faut créer aussi une clé API pour que les requêtes puissent retourner les titres Youtube etc..
Ce qui veut dire, je pense après avoir fouiné sur Google, que je dois mettre mes identifiants google etc.
Il me semble aussi avoir lu "qu'il fallait payer" .. une redevance ou un truc du style en abonnement ou autre, j'ai fait de la traduction Chrome et Google..
Ben si c’est cela non :)
Si y a pas d'autres solutions pour trouver un système via l’ancien tcl Youtube.
Il te semble beaucoup, mais tu ne fouilles pas assez.
Oui, il faut un compte google pour avoir une clé d'API... Je ne vois pas le problème. Si tu as peur de laisser des traces chez google (oh mon dieu ! La NSA sait que j'ai une API qui va chercher des infos sur une vidé de Beyoncé !), je peux te filer le compte de Raoul Poildur, je le crée demain en 30s.
Ensuite, tu peux utiliser gratuitement l'API, tu as juste un quota réduit (1000 requêtes par jour ?) Si tu as besoin de plus de requêtes, tu utilises des ressources de youtube, c'est normal que tu payes.
Et si tu veux utiliser "l'ancien système", bon courage, pour ma part je me sens (sans avoir trop cherché, je l'avoue) incapable de faire un système simple et efficace (sans faire 25 requêtes http) pour récupérer les bonnes infos sur youtube.
Sur ce, tout est dit je pense. Tu refais le tcl, tu utilises celui de m00nie, tu payes quelqu'un pour remplacer l'eggdrop, c'est toi qui vois. De mon côté, le sujet est clos.
Si si j'ai fouillé t'affole spas, j'ai même créé une clé API :)
Ceci dit vu que je ne connais pas suffisamment le débian (même si j'ai l'accès Root) ou sont hébergé mes eggys, je dois attendre que le dev m'installe le "package json" avant que je test mais le tcl est prêt, avec sa clé API :p
J'avoue m'être emballé a la lecture de la génération des clés API, mais bon j'ai horreur des trucs ou tu dois montrer patte blanche ..
J'ai toujours été dans la méfiance et ma foi, c’est pas plus mal.
Je vous tiens au courant dès que j'ai pu lancer la bête.
Quand on a la connaissance, ne pas la partager ne peux faire avancer la communauté !
De retour :)
Donc le Youtube de m00nie me donne des erreurs en PL après un lien posté :
[19:04:55] m00nie::youtube::autoinfo is running
[19:04:55] m00nie::youtube::autoinfo url is: https://www.youtube.com/watch?v=NPSvCJ9v7vI and id is: NPSvCJ9v7vI
[19:04:55] m00nie::youtube::getinfo Rawpage length is: 477
[19:04:55] Tcl error [m00nie::youtube::autoinfo]: key "items" not known in dictionary
[19:04:57] .set errorInfo
[19:04:57] <RadioDJ> Currently: key "items" not known in dictionary
[19:04:57] <RadioDJ> Currently: while executing
[19:04:57] <RadioDJ> Currently: "dict get [json::json2dict $rawpage] items"
[19:04:57] <RadioDJ> Currently: (procedure "getinfo" line 8)
[19:04:57] <RadioDJ> Currently: invoked from within
[19:04:57] <RadioDJ> Currently: "getinfo $url"
[19:04:57] <RadioDJ> Currently: (procedure "m00nie::youtube::autoinfo" line 7)
[19:04:57] <RadioDJ> Currently: invoked from within
[19:04:57] <RadioDJ> Currently: "m00nie::youtube::autoinfo $_pubm1 $_pubm2 $_pubm3 $_pubm4 $_pubm5"
Posté comme demandé
Merci :)
Quand on a la connaissance, ne pas la partager ne peux faire avancer la communauté !
[22:08:10] m00nie::youtube::throttlecheck search term or video id: 8hdBIi5c8ZE, is throttled at the moment
.set errorInfo
[22:08:11] set errorInfo
[22:08:11] <RadioDJ> Currently: key "items" not known in dictionary
[22:08:12] <RadioDJ> Currently: while executing
[22:08:12] <RadioDJ> Currently: "dict get [json::json2dict $rawpage] items"
[22:08:12] <RadioDJ> Currently: (procedure "getinfo" line 9)
[22:08:12] <RadioDJ> Currently: invoked from within
[22:08:12] <RadioDJ> Currently: "getinfo $url"
[22:08:12] <RadioDJ> Currently: (procedure "m00nie::youtube::autoinfo" line 7)
[22:08:12] <RadioDJ> Currently: invoked from within
[22:08:12] <RadioDJ> Currently: "m00nie::youtube::autoinfo $_pubm1 $_pubm2 $_pubm3 $_pubm4 $_pubm5"
Quand on a la connaissance, ne pas la partager ne peux faire avancer la communauté !