vbvbot9117 commited on
Commit
76bc4e4
·
verified ·
1 Parent(s): 6681879

Upload 2 files

Browse files
Files changed (2) hide show
  1. srv.py +76 -0
  2. www.youtube.com_cookies.txt +26 -0
srv.py ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Flask, request, jsonify, send_file, render_template
2
+ from yt_dlp import YoutubeDL
3
+ import os
4
+
5
+ app = Flask(__name__)
6
+
7
+ @app.route('/')
8
+ def home():
9
+ return render_template('index.html')
10
+
11
+ @app.route('/get-info', methods=['POST'])
12
+ def get_info():
13
+ data = request.json
14
+ url = data.get('url')
15
+
16
+ if not url:
17
+ return jsonify({'error': 'URL is required'}), 400
18
+
19
+ try:
20
+ ydl_opts = {
21
+ 'cookiefile': 'www.youtube.com_cookies.txt'
22
+ }
23
+
24
+ with YoutubeDL(ydl_opts) as ydl:
25
+ info = ydl.extract_info(url, download=False)
26
+ return jsonify({
27
+ 'title': info['title'],
28
+ 'thumbnail': info.get('thumbnail'),
29
+ 'duration': info.get('duration'),
30
+ 'channel': info.get('channel')
31
+ })
32
+
33
+ except Exception as e:
34
+ return jsonify({'error': str(e)}), 500
35
+
36
+ @app.route('/download', methods=['POST'])
37
+ def download_audio():
38
+ data = request.json
39
+ url = data.get('url')
40
+
41
+ if not url:
42
+ return jsonify({'error': 'URL is required'}), 400
43
+
44
+ try:
45
+ ydl_opts = {
46
+ 'format': '251/bestaudio', # Format untuk audio terbaik
47
+ 'outtmpl': '%(title)s.%(ext)s',
48
+ 'cookiefile': 'www.youtube.com_cookies.txt',
49
+ 'postprocessors': [{
50
+ 'key': 'FFmpegExtractAudio',
51
+ 'preferredcodec': 'mp3',
52
+ 'preferredquality': '192',
53
+ }],
54
+ }
55
+
56
+ with YoutubeDL(ydl_opts) as ydl:
57
+ info = ydl.extract_info(url, download=True)
58
+ file_name = ydl.prepare_filename(info).rsplit(".", 1)[0] + ".mp3"
59
+
60
+ # Kirim file ke client
61
+ return send_file(
62
+ file_name,
63
+ as_attachment=True,
64
+ download_name=os.path.basename(file_name)
65
+ )
66
+
67
+ except Exception as e:
68
+ return jsonify({'error': str(e)}), 500
69
+
70
+ finally:
71
+ # Bersihkan file setelah dikirim
72
+ if 'file_name' in locals() and os.path.exists(file_name):
73
+ os.remove(file_name)
74
+
75
+ if __name__ == '__main__':
76
+ app.run(debug=True)
www.youtube.com_cookies.txt ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Netscape HTTP Cookie File
2
+ # This file is generated by yt-dlp. Do not edit.
3
+
4
+ .youtube.com TRUE / FALSE 1761906658 _ga GA1.1.1548553517.1727346253
5
+ .youtube.com TRUE / TRUE 1743157450 NID 517=VAC94DgjtwfZZ2smgAPDBT26unHCL6MzMMGNmT7NImpcAVMzaEt19C2kyyx7NTnGxDAC45aZVDSRsboa69GhK3JEAgkimF9NPHZKTI8B4Vr1dYu0ALBvGTtbdz0juhciTv-P-SG1gbX1TqXNLa8pW2Q3B1UhfUm-uRoTJRza3x637JXJvPzo6mMm6bVTbkAeACiiZ2lZfqixy5if5LnLXMDFJIgIkUv5Npy0d6j_v0BURHHVJgM
6
+ .youtube.com TRUE / FALSE 1761906665 _ga_VCGEPY40VB GS1.1.1727346252.1.1.1727346665.9.0.0
7
+ .youtube.com TRUE / TRUE 1768566320 LOGIN_INFO AFmmF2swRQIgSBcQwz0a04cr0EVs0aRy9M9oZX55DK9JQJ0gQd8T7jwCIQC0acsroojj1NJlT-6KBA675CzN6D1AJNKqL5jZ5_8yBQ:QUQ3MjNmeVNyQkllNkJGdnMyZWcydWd4V3U0Q2o5RkhpOWpLOGlwVng1LWtxdUVwQm5VUGZpaXZRSFBpNUIyS0R4NUVTd2tZYnY0NEhEU3o0cU94WVVCVjZtdzEwNklTd3Z1Y0wyQk9BVVl3cy1FMEdWc2JtSnA4WEd2SW9oY20zVHlMS1c3MnQ2VFo5T2JBUlBEYmVhREVIaVNBektTUnhR
8
+ .youtube.com TRUE / FALSE 0 PREF f6=40000000&tz=UTC&f7=100&f5=30000&hl=en
9
+ .youtube.com TRUE / FALSE 1769495413 SID g.a000rghfkqSmx9ysnZoSVOJpgLNPpNDRAY0uIM_DsZ4NYxbt8a0Vt_XgW9fb1-zhoFxfcLtJDQACgYKAdQSARISFQHGX2MipdtUFVv0g9MqhkgJHdyOgRoVAUF8yKp2xkpuCGVXk6LeVDtnT7nM0076
10
+ .youtube.com TRUE / TRUE 1766471413 __Secure-1PSIDTS sidts-CjIB7wV3sS3OxUu5eFKsV-qFv4Lsp0WjQVxBByff6zTusQK9xFCZgFshZapevhqgquRv2xAA
11
+ .youtube.com TRUE / TRUE 1766471413 __Secure-3PSIDTS sidts-CjIB7wV3sS3OxUu5eFKsV-qFv4Lsp0WjQVxBByff6zTusQK9xFCZgFshZapevhqgquRv2xAA
12
+ .youtube.com TRUE / TRUE 1769495413 __Secure-1PSID g.a000rghfkqSmx9ysnZoSVOJpgLNPpNDRAY0uIM_DsZ4NYxbt8a0VfWZvAtZpglLUMmm4-Cme_QACgYKAbYSARISFQHGX2MigVW9IGk4pg0Hb4u0auUtKBoVAUF8yKrNIU9j5c30v_rnghRgYt1c0076
13
+ .youtube.com TRUE / TRUE 1769495413 __Secure-3PSID g.a000rghfkqSmx9ysnZoSVOJpgLNPpNDRAY0uIM_DsZ4NYxbt8a0Vu80Ew8a08DoVE5T1CC_WkQACgYKAWQSARISFQHGX2Mib8lkDId3W3aa07-KUKPYyRoVAUF8yKrjJ5RVRoT69-yzfTs9DV8d0076
14
+ .youtube.com TRUE / FALSE 1769495413 HSID AMWPgh8gRYwE0oxE4
15
+ .youtube.com TRUE / TRUE 1769495413 SSID AgCYg7mukl0wH0A9g
16
+ .youtube.com TRUE / FALSE 1769495413 APISID 8Bc7jl1Cc7XThmGb/AopbzxiDanJF9GNOw
17
+ .youtube.com TRUE / TRUE 1769495413 SAPISID rtlqFhWQ-U8BWf4n/AMCD0mz0xo1vQu-sQ
18
+ .youtube.com TRUE / TRUE 1769495413 __Secure-1PAPISID rtlqFhWQ-U8BWf4n/AMCD0mz0xo1vQu-sQ
19
+ .youtube.com TRUE / TRUE 1769495413 __Secure-3PAPISID rtlqFhWQ-U8BWf4n/AMCD0mz0xo1vQu-sQ
20
+ .youtube.com TRUE / TRUE 1748928304 __Secure-ROLLOUT_TOKEN CPDt87PDudHULhC8o5P38Y-KAxi8o5P38Y-KAw%3D%3D
21
+ .youtube.com TRUE / TRUE 0 YSC VApVUxMo5z0
22
+ .youtube.com TRUE / TRUE 1750931548 VISITOR_INFO1_LIVE JGUs4cvN_Fs
23
+ .youtube.com TRUE / TRUE 1750931548 VISITOR_PRIVACY_METADATA CgJJRBIEGgAgLg%3D%3D
24
+ .youtube.com TRUE / FALSE 1766915549 SIDCC AKEyXzWJBExoD5c2udorCAYYfNYxXVBQdSINoBIwCimdeq8-efTYH-c4Ho7mDWgaxBNIWjjjKw
25
+ .youtube.com TRUE / TRUE 1766915549 __Secure-1PSIDCC AKEyXzVh-cd4vOrH8RM5cmrWHylHon-sSMkDMLGB_X7BAuQ8yGdtuaVrQP2doux9kqMQdYpvSA
26
+ .youtube.com TRUE / TRUE 1766915549 __Secure-3PSIDCC AKEyXzXPjX_qgnEeuBu8pBV8N9HUgdfp9Do_vlu7rpNWHDb-iZ3RhojmqiG6rMCU2xyh1s3YxKI